48 lines
1.7 KiB
JavaScript
48 lines
1.7 KiB
JavaScript
const javaClient = require('../java-client')
|
|
const Mustache = require('mustache')
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const utils = require('../utils')
|
|
const javaType = require('../java-type')
|
|
|
|
const templateApiConfig = fs.readFileSync(path.resolve(path.join('templates', 'jax-rs-config.java.mustache')), 'utf-8')
|
|
const templateApi = fs.readFileSync(path.resolve(path.join('templates', 'jax-rs-api.java.mustache')), 'utf-8')
|
|
const templateResource = fs.readFileSync(path.resolve(path.join('templates', 'jax-rs-resource.java.mustache')), 'utf-8')
|
|
|
|
|
|
module.exports = (service) => {
|
|
|
|
service.pascalcase = utils.pascalcase(service.name)
|
|
service.configName = `${utils.pascalcase(service.name)}ApiClientConfig`
|
|
service.package = service.namespace
|
|
const resources = javaClient.mapResources(service.resources, service.namespace)
|
|
|
|
service.headers = service.headers.map(header => {
|
|
header.type = javaType.mapJavaType(header.type, service.namespace)
|
|
header.label = utils.camelcase(header.name)
|
|
return header
|
|
})
|
|
|
|
const files = resources.map(resource => {
|
|
return {
|
|
name: `${resource.name}.java`,
|
|
dir: resource.dir,
|
|
contents: Mustache.render(templateResource, { service, ...resource })
|
|
}
|
|
})
|
|
|
|
return [
|
|
...files,
|
|
{
|
|
name: `${service.configName}.java`,
|
|
dir: service.namespace.replace(/\./g, '/'),
|
|
contents: Mustache.render(templateApiConfig, service)
|
|
},
|
|
{
|
|
name: `${service.pascalcase}ServiceClient.java`,
|
|
dir: service.namespace.replace(/\./g, '/'),
|
|
contents: Mustache.render(templateApi, service)
|
|
}
|
|
]
|
|
|
|
} |