diff --git a/src/templates/typescript/service.hbs b/src/templates/typescript/service.hbs index a53df1fb..a3ec164b 100644 --- a/src/templates/typescript/service.hbs +++ b/src/templates/typescript/service.hbs @@ -34,12 +34,14 @@ export class {{{name}}} { */ public static async {{{name}}}({{#each parameters}}{{{name}}}{{#unless required}}?{{/unless}}: {{{type}}}{{#if nullable}} | null{{/if}}{{#unless @last}}, {{/unless}}{{/each}}): Promise<{{{result}}}> { {{#if parameters}} + {{#each parameters}} {{#if required}} isValidRequiredParam({{{name}}}, '{{{name}}}'); {{/if}} {{/each}} {{/if}} + const result = await request({ method: '{{{method}}}', path: `{{{path}}}`, @@ -69,6 +71,7 @@ export class {{{name}}} { {{/if}} }); {{#if errors}} + if (!result.ok) { switch (result.status) { {{#each errors}} @@ -77,9 +80,11 @@ export class {{{name}}} { } } {{/if}} + catchGenericError(result); return result.body; } + {{/each}} } diff --git a/src/utils/getModelNames.ts b/src/utils/getModelNames.ts index 07818533..9d04f6c8 100644 --- a/src/utils/getModelNames.ts +++ b/src/utils/getModelNames.ts @@ -2,10 +2,11 @@ import { Model } from '../client/interfaces/Model'; export function getModelNames(models: Map): string[] { return Array.from(models.values()) + .map(model => model.name) + .concat(['Dictionary']) .sort((a, b) => { - const nameA = a.name.toLowerCase(); - const nameB = b.name.toLowerCase(); + const nameA = a.toLowerCase(); + const nameB = b.toLowerCase(); return nameA.localeCompare(nameB, 'en'); - }) - .map(model => model.name); + }); } diff --git a/src/utils/getServiceNames.ts b/src/utils/getServiceNames.ts index ac908c1c..17251252 100644 --- a/src/utils/getServiceNames.ts +++ b/src/utils/getServiceNames.ts @@ -2,10 +2,10 @@ import { Service } from '../client/interfaces/Service'; export function getServiceNames(services: Map): string[] { return Array.from(services.values()) + .map(service => service.name) .sort((a, b) => { - const nameA = a.name.toLowerCase(); - const nameB = b.name.toLowerCase(); + const nameA = a.toLowerCase(); + const nameB = b.toLowerCase(); return nameA.localeCompare(nameB, 'en'); - }) - .map(service => service.name); + }); } diff --git a/src/utils/writeClientServices.ts b/src/utils/writeClientServices.ts index 410abc8a..63efd5e8 100644 --- a/src/utils/writeClientServices.ts +++ b/src/utils/writeClientServices.ts @@ -19,7 +19,7 @@ export function writeClientServices(services: Map, language: La const fileName = getFileName(service.name, language); try { const templateData = exportService(service); - const templateResult = templates.model(templateData); + const templateResult = templates.service(templateData); fs.writeFileSync(path.resolve(outputPath, fileName), format(templateResult)); } catch (e) { throw new Error(`Could not write service: "${fileName}"`);