50 lines
1.6 KiB
JavaScript
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
|
|
})
|
|
}
|
|
} |