diff --git a/src/generators/java-client-generator.js b/src/generators/java-client-generator.js index 988c7e8..e98741c 100644 --- a/src/generators/java-client-generator.js +++ b/src/generators/java-client-generator.js @@ -15,7 +15,7 @@ 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) + const resources = javaClient.mapResources(service.resources, service.namespace, service) service.headers = service.headers.map(header => { header.type = javaType.mapJavaType(header.type, service.namespace) diff --git a/src/java-client.js b/src/java-client.js index d0e3981..d76b212 100644 --- a/src/java-client.js +++ b/src/java-client.js @@ -18,27 +18,27 @@ function formatOperationName(operation) { } -function mapParameter(parameter, namespace, operation) { +function mapParameter(parameter, namespace, operation, service) { parameter.label = utils.camelcase(parameter.name) - parameter.type = javaType.mapJavaType(parameter.type, namespace) + parameter.type = javaType.mapJavaType(parameter.type, namespace, '', service) parameter.op = operation parameter.isPath = parameter.location === 'Path' parameter.default = javaType.mapDefaultValue(parameter.type, parameter.default) return parameter } -function mapOperation(operation, namespace) { +function mapOperation(operation, namespace, service) { operation.headers = operation.parameters .filter(param => param.location === 'Header') - .map(param => mapParameter(param, namespace, operation)) + .map(param => mapParameter(param, namespace, operation, service)) operation.query = operation.parameters .filter(param => param.location === 'Query') - .map(param => mapParameter(param, namespace, operation)) + .map(param => mapParameter(param, namespace, operation, service)) operation.parameters = operation.parameters .filter(param => param.location === 'Path') - .map(param => mapParameter(param, namespace, operation)) + .map(param => mapParameter(param, namespace, operation, service)) operation.name = formatOperationName(operation) operation.camelcase = utils.camelcase(operation.name) @@ -59,7 +59,7 @@ function mapOperation(operation, namespace) { } }) operation.responses = operation.responses.map(resp => { - let type = javaType.mapJavaType(resp.type, namespace) + let type = javaType.mapJavaType(resp.type, namespac, service) if(resp.type !== 'unit') { resp.label = `${utils.camelcase(type.baseType || 'result')}${resp.code.integer.value}` } @@ -75,7 +75,7 @@ function mapOperation(operation, namespace) { label: bodyName, required: true, location: 'Body', - type: javaType.mapJavaType(operation.body.type, namespace) + type: javaType.mapJavaType(operation.body.type, namespace, service) } ] operation.body.name = bodyName @@ -91,11 +91,11 @@ function mapOperation(operation, namespace) { } module.exports = { - mapResources: (resources, namespace) => { + mapResources: (resources, namespace, service) => { return resources.map(resource => { - resource.type = javaType.mapJavaType(resource.type, namespace) + resource.type = javaType.mapJavaType(resource.type, namespace, '', service) resource.name = `${utils.pascalcase(resource.plural)}Resource` - resource.operations = resource.operations.map(op => mapOperation(op, namespace)) + resource.operations = resource.operations.map(op => mapOperation(op, namespace, service)) resource.package = `${namespace}.client` resource.dir = resource.package.replace(/\./g, '/')