java-apibuilder-generators-.../src/java-client.js

50 lines
1.6 KiB
JavaScript

const utils = require('./utils')
const javaType = require('./java-type')
function mapParameter(parameter, namespace) {
parameter.type = javaType.mapJavaType(parameter.type, namespace)
return parameter
}
function mapOperation(operation, namespace) {
operation.headers = operation.parameters
.filter(param => param.location === 'Header')
.map(param => mapParameter(param, namespace))
operation.query = operation.parameters
.filter(param => param.location === 'Query')
.map(param => mapParameter(param, namespace))
operation.parameters = operation.parameters
.filter(param => param.location === 'Path')
.map(param => mapParameter(param, namespace))
if(operation.body) {
operation.parameters = [
...operation.parameters,
{
name: utils.camelcase(operation.body.type),
required: true,
location: 'Body',
type: javaType.mapJavaType(operation.body.type, namespace)
}
]
}
return operation
}
module.exports = {
mapResources: (resources, namespace) => {
return resources.map(resource => {
resource.type = javaType.mapJavaType(resource.type, namespace)
resource.name = utils.pascalcase(resource.plural)
resource.operations = resource.operations.map(op => mapOperation(op, namespace))
resource.package = `${namespace}.client`
return resource
})
}
}