From c5f9ab22cb4f7aa3c3dbdf93c148f5f39a14f9b4 Mon Sep 17 00:00:00 2001 From: wing328 Date: Fri, 5 Aug 2016 21:23:19 +0800 Subject: [PATCH 1/6] better enum support for typescript angular2 --- .../AbstractTypeScriptClientCodegen.java | 8 ++++++++ .../resources/typescript-angular2/model.mustache | 16 +++++++++++----- .../default/model/Category.ts | 3 +-- .../typescript-angular2/default/model/Order.ts | 5 ++--- .../typescript-angular2/default/model/Pet.ts | 5 ++--- .../typescript-angular2/default/model/Tag.ts | 3 +-- .../typescript-angular2/default/model/User.ts | 3 +-- .../petstore/typescript-angular2/npm/README.md | 4 ++-- .../typescript-angular2/npm/model/Category.ts | 3 +-- .../typescript-angular2/npm/model/Order.ts | 5 ++--- .../typescript-angular2/npm/model/Pet.ts | 5 ++--- .../typescript-angular2/npm/model/Tag.ts | 3 +-- .../typescript-angular2/npm/model/User.ts | 3 +-- .../typescript-angular2/npm/package.json | 2 +- 14 files changed, 36 insertions(+), 32 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java index 87fb026b40a..084ab5df79c 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -271,6 +271,11 @@ public String toEnumDefaultValue(String value, String datatype) { @Override public String toEnumVarName(String name, String datatype) { + // for symbol, e.g. $, # + if (getSymbolName(name) != null) { + return camelize(getSymbolName(name)); + } + // number if ("int".equals(datatype) || "double".equals(datatype) || "float".equals(datatype)) { String varName = new String(name); @@ -298,6 +303,9 @@ public String toEnumVarName(String name, String datatype) { @Override public String toEnumName(CodegenProperty property) { + + + String enumName = toModelName(property.name) + "Enum"; if (enumName.matches("\\d.*")) { // starts with number diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache index 6ae9b8c48cd..a79c4782ebb 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache @@ -10,24 +10,30 @@ import * as models from './models'; */ {{/description}} export interface {{classname}} {{#parent}}extends models.{{{parent}}} {{/parent}}{ - {{#additionalPropertiesType}}[key: string]: {{{additionalPropertiesType}}}{{#hasVars}} | any{{/hasVars}};{{/additionalPropertiesType}} -{{#vars}} +{{#additionalPropertiesType}} + [key: string]: {{{additionalPropertiesType}}}{{#hasVars}} | any{{/hasVars}}; +{{/additionalPropertiesType}} +{{#vars}} {{#description}} /** * {{{description}}} */ {{/description}} {{name}}?: {{#isEnum}}{{classname}}.{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; + {{/vars}} } {{#hasEnums}} export namespace {{classname}} { {{#vars}} {{#isEnum}} - - export enum {{datatypeWithEnum}} { {{#allowableValues}}{{#values}} - {{.}} = '{{.}}',{{/values}}{{/allowableValues}} + export enum {{enumName}} { + {{#allowableValues}} + {{#enumVars}} + {{{name}}} = {{{value}}}, + {{/enumVars}} + {{/allowableValues}} } {{/isEnum}} {{/vars}} diff --git a/samples/client/petstore/typescript-angular2/default/model/Category.ts b/samples/client/petstore/typescript-angular2/default/model/Category.ts index 38600f7789c..32657b473c6 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Category.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Category.ts @@ -26,9 +26,8 @@ import * as models from './models'; export interface Category { - - id?: number; name?: string; + } diff --git a/samples/client/petstore/typescript-angular2/default/model/Order.ts b/samples/client/petstore/typescript-angular2/default/model/Order.ts index b898ff568bf..40b40b8a343 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Order.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Order.ts @@ -26,8 +26,6 @@ import * as models from './models'; export interface Order { - - id?: number; petId?: number; @@ -42,10 +40,11 @@ export interface Order { status?: Order.StatusEnum; complete?: boolean; + } export namespace Order { - export enum StatusEnum { + export enum StatusEnum { placed = 'placed', approved = 'approved', delivered = 'delivered', diff --git a/samples/client/petstore/typescript-angular2/default/model/Pet.ts b/samples/client/petstore/typescript-angular2/default/model/Pet.ts index f4bf6efa201..f43847cf62a 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Pet.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Pet.ts @@ -26,8 +26,6 @@ import * as models from './models'; export interface Pet { - - id?: number; category?: models.Category; @@ -42,10 +40,11 @@ export interface Pet { * pet status in the store */ status?: Pet.StatusEnum; + } export namespace Pet { - export enum StatusEnum { + export enum StatusEnum { available = 'available', pending = 'pending', sold = 'sold', diff --git a/samples/client/petstore/typescript-angular2/default/model/Tag.ts b/samples/client/petstore/typescript-angular2/default/model/Tag.ts index 31419ef4aab..6672611adfc 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Tag.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Tag.ts @@ -26,9 +26,8 @@ import * as models from './models'; export interface Tag { - - id?: number; name?: string; + } diff --git a/samples/client/petstore/typescript-angular2/default/model/User.ts b/samples/client/petstore/typescript-angular2/default/model/User.ts index f343e2f1766..11c5e587ee8 100644 --- a/samples/client/petstore/typescript-angular2/default/model/User.ts +++ b/samples/client/petstore/typescript-angular2/default/model/User.ts @@ -26,8 +26,6 @@ import * as models from './models'; export interface User { - - id?: number; username?: string; @@ -46,4 +44,5 @@ export interface User { * User Status */ userStatus?: number; + } diff --git a/samples/client/petstore/typescript-angular2/npm/README.md b/samples/client/petstore/typescript-angular2/npm/README.md index 81364f3a176..58330e93295 100644 --- a/samples/client/petstore/typescript-angular2/npm/README.md +++ b/samples/client/petstore/typescript-angular2/npm/README.md @@ -1,4 +1,4 @@ -## @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201607211723 +## @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052115 ### Building @@ -19,7 +19,7 @@ navigate to the folder of your consuming project and run one of next commando's. _published:_ ``` -npm install @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201607211723 --save +npm install @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052115 --save ``` _unPublished (not recommended):_ diff --git a/samples/client/petstore/typescript-angular2/npm/model/Category.ts b/samples/client/petstore/typescript-angular2/npm/model/Category.ts index 38600f7789c..32657b473c6 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Category.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Category.ts @@ -26,9 +26,8 @@ import * as models from './models'; export interface Category { - - id?: number; name?: string; + } diff --git a/samples/client/petstore/typescript-angular2/npm/model/Order.ts b/samples/client/petstore/typescript-angular2/npm/model/Order.ts index b898ff568bf..40b40b8a343 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Order.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Order.ts @@ -26,8 +26,6 @@ import * as models from './models'; export interface Order { - - id?: number; petId?: number; @@ -42,10 +40,11 @@ export interface Order { status?: Order.StatusEnum; complete?: boolean; + } export namespace Order { - export enum StatusEnum { + export enum StatusEnum { placed = 'placed', approved = 'approved', delivered = 'delivered', diff --git a/samples/client/petstore/typescript-angular2/npm/model/Pet.ts b/samples/client/petstore/typescript-angular2/npm/model/Pet.ts index f4bf6efa201..f43847cf62a 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Pet.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Pet.ts @@ -26,8 +26,6 @@ import * as models from './models'; export interface Pet { - - id?: number; category?: models.Category; @@ -42,10 +40,11 @@ export interface Pet { * pet status in the store */ status?: Pet.StatusEnum; + } export namespace Pet { - export enum StatusEnum { + export enum StatusEnum { available = 'available', pending = 'pending', sold = 'sold', diff --git a/samples/client/petstore/typescript-angular2/npm/model/Tag.ts b/samples/client/petstore/typescript-angular2/npm/model/Tag.ts index 31419ef4aab..6672611adfc 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Tag.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Tag.ts @@ -26,9 +26,8 @@ import * as models from './models'; export interface Tag { - - id?: number; name?: string; + } diff --git a/samples/client/petstore/typescript-angular2/npm/model/User.ts b/samples/client/petstore/typescript-angular2/npm/model/User.ts index f343e2f1766..11c5e587ee8 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/User.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/User.ts @@ -26,8 +26,6 @@ import * as models from './models'; export interface User { - - id?: number; username?: string; @@ -46,4 +44,5 @@ export interface User { * User Status */ userStatus?: number; + } diff --git a/samples/client/petstore/typescript-angular2/npm/package.json b/samples/client/petstore/typescript-angular2/npm/package.json index e71da5c4663..16f0d49b95e 100644 --- a/samples/client/petstore/typescript-angular2/npm/package.json +++ b/samples/client/petstore/typescript-angular2/npm/package.json @@ -1,6 +1,6 @@ { "name": "@swagger/angular2-typescript-petstore", - "version": "0.0.1-SNAPSHOT.201607211723", + "version": "0.0.1-SNAPSHOT.201608052115", "description": "swagger client for @swagger/angular2-typescript-petstore", "author": "Swagger Codegen Contributors", "keywords": [ From cd6b5d7eaf76a80cbed55af20157cded2d1bb5e0 Mon Sep 17 00:00:00 2001 From: wing328 Date: Fri, 5 Aug 2016 23:05:54 +0800 Subject: [PATCH 2/6] fix enum property for TS --- .../AbstractTypeScriptClientCodegen.java | 21 ++++++++++++---- .../resources/TypeScript-Fetch/api.mustache | 4 ++-- .../typescript-angular/model.mustache | 13 ++++++---- .../typescript-angular2/model.mustache | 4 ++-- .../resources/typescript-node/api.mustache | 4 ++-- .../typescript-angular/API/Client/Category.ts | 2 +- .../typescript-angular/API/Client/Order.ts | 11 ++++----- .../typescript-angular/API/Client/Pet.ts | 11 ++++----- .../typescript-angular/API/Client/PetApi.ts | 24 +++++++++---------- .../typescript-angular/API/Client/StoreApi.ts | 12 +++++----- .../typescript-angular/API/Client/Tag.ts | 2 +- .../typescript-angular/API/Client/User.ts | 2 +- .../typescript-angular/API/Client/UserApi.ts | 18 +++++++------- .../default/model/Order.ts | 9 ++++--- .../typescript-angular2/default/model/Pet.ts | 9 ++++--- .../typescript-angular2/npm/README.md | 4 ++-- .../typescript-angular2/npm/model/Order.ts | 9 ++++--- .../typescript-angular2/npm/model/Pet.ts | 9 ++++--- .../typescript-angular2/npm/package.json | 2 +- .../typescript-fetch/builds/default/api.ts | 8 +++---- .../typescript-fetch/builds/es6-target/api.ts | 8 +++---- .../builds/with-npm-version/api.ts | 8 +++---- .../petstore/typescript-node/npm/api.ts | 4 ++-- 23 files changed, 104 insertions(+), 94 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java index 084ab5df79c..1fdcc63e384 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -3,14 +3,17 @@ import org.apache.commons.lang3.StringUtils; import java.io.File; +import java.util.List; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map; +import java.util.TreeSet; import io.swagger.codegen.CliOption; import io.swagger.codegen.CodegenConfig; import io.swagger.codegen.CodegenConstants; +import io.swagger.codegen.CodegenModel; import io.swagger.codegen.CodegenProperty; import io.swagger.codegen.CodegenType; import io.swagger.codegen.DefaultCodegen; @@ -303,9 +306,6 @@ public String toEnumVarName(String name, String datatype) { @Override public String toEnumName(CodegenProperty property) { - - - String enumName = toModelName(property.name) + "Enum"; if (enumName.matches("\\d.*")) { // starts with number @@ -318,7 +318,20 @@ public String toEnumName(CodegenProperty property) { @Override public Map postProcessModels(Map objs) { // process enum in models - return postProcessModelsEnum(objs); + List models = (List) postProcessModelsEnum(objs).get("models"); + for (Object _mo : models) { + Map mo = (Map) _mo; + CodegenModel cm = (CodegenModel) mo.get("model"); + cm.imports = new TreeSet(cm.imports); + for (CodegenProperty var : cm.vars) { + // name enum with model name, e.g. StatuEnum => Pet.StatusEnum + if (Boolean.TRUE.equals(var.isEnum) && Boolean.TRUE.equals(var.isContainer)) { + var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, cm.classname + "." + var.enumName); + } + } + } + + return objs; } public void setSupportsES6(Boolean value) { diff --git a/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache b/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache index e8b9dd67fd6..e39b13a8014 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache @@ -41,14 +41,14 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ * {{{description}}} */ {{/description}} - "{{name}}"{{^required}}?{{/required}}: {{#isEnum}}{{classname}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; + "{{name}}"{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; {{/vars}} } {{#hasEnums}} {{#vars}} {{#isEnum}} -export type {{classname}}{{datatypeWithEnum}} = {{#allowableValues}}{{#values}}"{{.}}"{{^-last}} | {{/-last}}{{/values}}{{/allowableValues}}; +export type {{enumName}} = {{#allowableValues}}{{#values}}"{{{.}}}"{{^-last}} | {{/-last}}{{/values}}{{/allowableValues}}; {{/isEnum}} {{/vars}} {{/hasEnums}} diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular/model.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular/model.mustache index 1bbef2d1322..56732788f62 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular/model.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular/model.mustache @@ -13,13 +13,13 @@ namespace {{package}} { {{/description}} export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ {{#vars}} - {{#description}} /** * {{{description}}} */ {{/description}} - "{{name}}"{{^required}}?{{/required}}: {{#isEnum}}{{classname}}.{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; + "{{name}}"{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; + {{/vars}} } @@ -27,9 +27,12 @@ namespace {{package}} { export namespace {{classname}} { {{#vars}} {{#isEnum}} - - export enum {{datatypeWithEnum}} { {{#allowableValues}}{{#values}} - {{.}} = '{{.}}'{{^-last}},{{/-last}}{{/values}}{{/allowableValues}} + export enum {{enumName}} { + {{#allowableValues}} + {{#enumVars}} + {{{name}}} = {{{value}}}{{^-last}},{{/-last}} + {{/enumVars}} + {{/allowableValues}} } {{/isEnum}} {{/vars}} diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache index a79c4782ebb..4e7a0d87a48 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache @@ -20,7 +20,7 @@ export interface {{classname}} {{#parent}}extends models.{{{parent}}} {{/parent} * {{{description}}} */ {{/description}} - {{name}}?: {{#isEnum}}{{classname}}.{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; + {{name}}?: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; {{/vars}} } @@ -31,7 +31,7 @@ export namespace {{classname}} { export enum {{enumName}} { {{#allowableValues}} {{#enumVars}} - {{{name}}} = {{{value}}}, + {{{name}}} = {{{value}}}{{^-last}},{{/-last}} {{/enumVars}} {{/allowableValues}} } diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache index 3ecb12e24f5..d501432df28 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache @@ -27,7 +27,7 @@ export class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ * {{{description}}} */ {{/description}} - '{{name}}': {{#isEnum}}{{classname}}.{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; + '{{name}}': {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}; {{/vars}} } @@ -35,7 +35,7 @@ export class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ export namespace {{classname}} { {{#vars}} {{#isEnum}} - export enum {{datatypeWithEnum}} { + export enum {{enumName}} { {{#allowableValues}} {{#enumVars}} {{name}} = {{{value}}}{{^-last}},{{/-last}} diff --git a/samples/client/petstore/typescript-angular/API/Client/Category.ts b/samples/client/petstore/typescript-angular/API/Client/Category.ts index cef6ad27f41..38fc1322c17 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Category.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Category.ts @@ -28,10 +28,10 @@ namespace API.Client { 'use strict'; export interface Category { - "id"?: number; "name"?: string; + } } diff --git a/samples/client/petstore/typescript-angular/API/Client/Order.ts b/samples/client/petstore/typescript-angular/API/Client/Order.ts index 15034b95fbf..61a4475c899 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Order.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Order.ts @@ -28,7 +28,6 @@ namespace API.Client { 'use strict'; export interface Order { - "id"?: number; "petId"?: number; @@ -43,14 +42,14 @@ namespace API.Client { "status"?: Order.StatusEnum; "complete"?: boolean; + } export namespace Order { - - export enum StatusEnum { - placed = 'placed', - approved = 'approved', - delivered = 'delivered' + export enum StatusEnum { + status = [C@2a55de3b, + status = [C@6b710933, + status = [C@4a132a60 } } } diff --git a/samples/client/petstore/typescript-angular/API/Client/Pet.ts b/samples/client/petstore/typescript-angular/API/Client/Pet.ts index f31c761137d..468723d0ee4 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Pet.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Pet.ts @@ -28,7 +28,6 @@ namespace API.Client { 'use strict'; export interface Pet { - "id"?: number; "category"?: Category; @@ -43,14 +42,14 @@ namespace API.Client { * pet status in the store */ "status"?: Pet.StatusEnum; + } export namespace Pet { - - export enum StatusEnum { - available = 'available', - pending = 'pending', - sold = 'sold' + export enum StatusEnum { + status = [C@14dd18cc, + status = [C@3f8703c7, + status = [C@39091e66 } } } diff --git a/samples/client/petstore/typescript-angular/API/Client/PetApi.ts b/samples/client/petstore/typescript-angular/API/Client/PetApi.ts index 716fea34d47..0cc69189b40 100644 --- a/samples/client/petstore/typescript-angular/API/Client/PetApi.ts +++ b/samples/client/petstore/typescript-angular/API/Client/PetApi.ts @@ -87,9 +87,9 @@ namespace API.Client { let queryParameters: any = {}; let headerParams: any = this.extendObj({}, this.defaultHeaders); - // verify required parameter 'petId' is set - if (!petId) { - throw new Error('Missing required parameter petId when calling deletePet'); + // verify required parameter 'petId' is not null or undefined + if (petId === null || petId === undefined) { + throw new Error('Required parameter petId was null or undefined when calling deletePet.'); } headerParams['api_key'] = apiKey; @@ -174,9 +174,9 @@ namespace API.Client { let queryParameters: any = {}; let headerParams: any = this.extendObj({}, this.defaultHeaders); - // verify required parameter 'petId' is set - if (!petId) { - throw new Error('Missing required parameter petId when calling getPetById'); + // verify required parameter 'petId' is not null or undefined + if (petId === null || petId === undefined) { + throw new Error('Required parameter petId was null or undefined when calling getPetById.'); } let httpRequestParams: any = { method: 'GET', @@ -232,9 +232,9 @@ namespace API.Client { let headerParams: any = this.extendObj({}, this.defaultHeaders); let formParams: any = {}; - // verify required parameter 'petId' is set - if (!petId) { - throw new Error('Missing required parameter petId when calling updatePetWithForm'); + // verify required parameter 'petId' is not null or undefined + if (petId === null || petId === undefined) { + throw new Error('Required parameter petId was null or undefined when calling updatePetWithForm.'); } headerParams['Content-Type'] = 'application/x-www-form-urlencoded'; @@ -272,9 +272,9 @@ namespace API.Client { let headerParams: any = this.extendObj({}, this.defaultHeaders); let formParams: any = {}; - // verify required parameter 'petId' is set - if (!petId) { - throw new Error('Missing required parameter petId when calling uploadFile'); + // verify required parameter 'petId' is not null or undefined + if (petId === null || petId === undefined) { + throw new Error('Required parameter petId was null or undefined when calling uploadFile.'); } headerParams['Content-Type'] = 'application/x-www-form-urlencoded'; diff --git a/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts b/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts index 3944ee0e3c4..2087428610c 100644 --- a/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts +++ b/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts @@ -61,9 +61,9 @@ namespace API.Client { let queryParameters: any = {}; let headerParams: any = this.extendObj({}, this.defaultHeaders); - // verify required parameter 'orderId' is set - if (!orderId) { - throw new Error('Missing required parameter orderId when calling deleteOrder'); + // verify required parameter 'orderId' is not null or undefined + if (orderId === null || orderId === undefined) { + throw new Error('Required parameter orderId was null or undefined when calling deleteOrder.'); } let httpRequestParams: any = { method: 'DELETE', @@ -113,9 +113,9 @@ namespace API.Client { let queryParameters: any = {}; let headerParams: any = this.extendObj({}, this.defaultHeaders); - // verify required parameter 'orderId' is set - if (!orderId) { - throw new Error('Missing required parameter orderId when calling getOrderById'); + // verify required parameter 'orderId' is not null or undefined + if (orderId === null || orderId === undefined) { + throw new Error('Required parameter orderId was null or undefined when calling getOrderById.'); } let httpRequestParams: any = { method: 'GET', diff --git a/samples/client/petstore/typescript-angular/API/Client/Tag.ts b/samples/client/petstore/typescript-angular/API/Client/Tag.ts index d66c1455114..4bb1aba95fd 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Tag.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Tag.ts @@ -28,10 +28,10 @@ namespace API.Client { 'use strict'; export interface Tag { - "id"?: number; "name"?: string; + } } diff --git a/samples/client/petstore/typescript-angular/API/Client/User.ts b/samples/client/petstore/typescript-angular/API/Client/User.ts index 80875387002..f7a86052693 100644 --- a/samples/client/petstore/typescript-angular/API/Client/User.ts +++ b/samples/client/petstore/typescript-angular/API/Client/User.ts @@ -28,7 +28,6 @@ namespace API.Client { 'use strict'; export interface User { - "id"?: number; "username"?: string; @@ -47,6 +46,7 @@ namespace API.Client { * User Status */ "userStatus"?: number; + } } diff --git a/samples/client/petstore/typescript-angular/API/Client/UserApi.ts b/samples/client/petstore/typescript-angular/API/Client/UserApi.ts index c4ce214aa4a..174ea01bd4f 100644 --- a/samples/client/petstore/typescript-angular/API/Client/UserApi.ts +++ b/samples/client/petstore/typescript-angular/API/Client/UserApi.ts @@ -136,9 +136,9 @@ namespace API.Client { let queryParameters: any = {}; let headerParams: any = this.extendObj({}, this.defaultHeaders); - // verify required parameter 'username' is set - if (!username) { - throw new Error('Missing required parameter username when calling deleteUser'); + // verify required parameter 'username' is not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling deleteUser.'); } let httpRequestParams: any = { method: 'DELETE', @@ -165,9 +165,9 @@ namespace API.Client { let queryParameters: any = {}; let headerParams: any = this.extendObj({}, this.defaultHeaders); - // verify required parameter 'username' is set - if (!username) { - throw new Error('Missing required parameter username when calling getUserByName'); + // verify required parameter 'username' is not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling getUserByName.'); } let httpRequestParams: any = { method: 'GET', @@ -251,9 +251,9 @@ namespace API.Client { let queryParameters: any = {}; let headerParams: any = this.extendObj({}, this.defaultHeaders); - // verify required parameter 'username' is set - if (!username) { - throw new Error('Missing required parameter username when calling updateUser'); + // verify required parameter 'username' is not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling updateUser.'); } let httpRequestParams: any = { method: 'PUT', diff --git a/samples/client/petstore/typescript-angular2/default/model/Order.ts b/samples/client/petstore/typescript-angular2/default/model/Order.ts index 40b40b8a343..de8eab6482f 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Order.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Order.ts @@ -37,16 +37,15 @@ export interface Order { /** * Order Status */ - status?: Order.StatusEnum; + status?: StatusEnum; complete?: boolean; } export namespace Order { - export enum StatusEnum { - placed = 'placed', - approved = 'approved', - delivered = 'delivered', + Placed = 'placed', + Approved = 'approved', + Delivered = 'delivered' } } diff --git a/samples/client/petstore/typescript-angular2/default/model/Pet.ts b/samples/client/petstore/typescript-angular2/default/model/Pet.ts index f43847cf62a..70bf71ac71b 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Pet.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Pet.ts @@ -39,14 +39,13 @@ export interface Pet { /** * pet status in the store */ - status?: Pet.StatusEnum; + status?: StatusEnum; } export namespace Pet { - export enum StatusEnum { - available = 'available', - pending = 'pending', - sold = 'sold', + Available = 'available', + Pending = 'pending', + Sold = 'sold' } } diff --git a/samples/client/petstore/typescript-angular2/npm/README.md b/samples/client/petstore/typescript-angular2/npm/README.md index 58330e93295..86836a1f91b 100644 --- a/samples/client/petstore/typescript-angular2/npm/README.md +++ b/samples/client/petstore/typescript-angular2/npm/README.md @@ -1,4 +1,4 @@ -## @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052115 +## @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052253 ### Building @@ -19,7 +19,7 @@ navigate to the folder of your consuming project and run one of next commando's. _published:_ ``` -npm install @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052115 --save +npm install @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052253 --save ``` _unPublished (not recommended):_ diff --git a/samples/client/petstore/typescript-angular2/npm/model/Order.ts b/samples/client/petstore/typescript-angular2/npm/model/Order.ts index 40b40b8a343..de8eab6482f 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Order.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Order.ts @@ -37,16 +37,15 @@ export interface Order { /** * Order Status */ - status?: Order.StatusEnum; + status?: StatusEnum; complete?: boolean; } export namespace Order { - export enum StatusEnum { - placed = 'placed', - approved = 'approved', - delivered = 'delivered', + Placed = 'placed', + Approved = 'approved', + Delivered = 'delivered' } } diff --git a/samples/client/petstore/typescript-angular2/npm/model/Pet.ts b/samples/client/petstore/typescript-angular2/npm/model/Pet.ts index f43847cf62a..70bf71ac71b 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Pet.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Pet.ts @@ -39,14 +39,13 @@ export interface Pet { /** * pet status in the store */ - status?: Pet.StatusEnum; + status?: StatusEnum; } export namespace Pet { - export enum StatusEnum { - available = 'available', - pending = 'pending', - sold = 'sold', + Available = 'available', + Pending = 'pending', + Sold = 'sold' } } diff --git a/samples/client/petstore/typescript-angular2/npm/package.json b/samples/client/petstore/typescript-angular2/npm/package.json index 16f0d49b95e..d1c4718a014 100644 --- a/samples/client/petstore/typescript-angular2/npm/package.json +++ b/samples/client/petstore/typescript-angular2/npm/package.json @@ -1,6 +1,6 @@ { "name": "@swagger/angular2-typescript-petstore", - "version": "0.0.1-SNAPSHOT.201608052115", + "version": "0.0.1-SNAPSHOT.201608052253", "description": "swagger client for @swagger/angular2-typescript-petstore", "author": "Swagger Codegen Contributors", "keywords": [ diff --git a/samples/client/petstore/typescript-fetch/builds/default/api.ts b/samples/client/petstore/typescript-fetch/builds/default/api.ts index ee15be389c9..4901773359b 100644 --- a/samples/client/petstore/typescript-fetch/builds/default/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/default/api.ts @@ -61,11 +61,11 @@ export interface Order { /** * Order Status */ - "status"?: OrderStatusEnum; + "status"?: StatusEnum; "complete"?: boolean; } -export type OrderStatusEnum = "placed" | "approved" | "delivered"; +export type StatusEnum = "placed" | "approved" | "delivered"; export interface Pet { "id"?: number; "category"?: Category; @@ -75,10 +75,10 @@ export interface Pet { /** * pet status in the store */ - "status"?: PetStatusEnum; + "status"?: StatusEnum; } -export type PetStatusEnum = "available" | "pending" | "sold"; +export type StatusEnum = "available" | "pending" | "sold"; export interface Tag { "id"?: number; "name"?: string; diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts b/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts index 96b912c587f..de63695b216 100644 --- a/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts @@ -60,11 +60,11 @@ export interface Order { /** * Order Status */ - "status"?: OrderStatusEnum; + "status"?: StatusEnum; "complete"?: boolean; } -export type OrderStatusEnum = "placed" | "approved" | "delivered"; +export type StatusEnum = "placed" | "approved" | "delivered"; export interface Pet { "id"?: number; "category"?: Category; @@ -74,10 +74,10 @@ export interface Pet { /** * pet status in the store */ - "status"?: PetStatusEnum; + "status"?: StatusEnum; } -export type PetStatusEnum = "available" | "pending" | "sold"; +export type StatusEnum = "available" | "pending" | "sold"; export interface Tag { "id"?: number; "name"?: string; diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts b/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts index ee15be389c9..4901773359b 100644 --- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts @@ -61,11 +61,11 @@ export interface Order { /** * Order Status */ - "status"?: OrderStatusEnum; + "status"?: StatusEnum; "complete"?: boolean; } -export type OrderStatusEnum = "placed" | "approved" | "delivered"; +export type StatusEnum = "placed" | "approved" | "delivered"; export interface Pet { "id"?: number; "category"?: Category; @@ -75,10 +75,10 @@ export interface Pet { /** * pet status in the store */ - "status"?: PetStatusEnum; + "status"?: StatusEnum; } -export type PetStatusEnum = "available" | "pending" | "sold"; +export type StatusEnum = "available" | "pending" | "sold"; export interface Tag { "id"?: number; "name"?: string; diff --git a/samples/client/petstore/typescript-node/npm/api.ts b/samples/client/petstore/typescript-node/npm/api.ts index 02128e1699e..0383f3d9d40 100644 --- a/samples/client/petstore/typescript-node/npm/api.ts +++ b/samples/client/petstore/typescript-node/npm/api.ts @@ -47,7 +47,7 @@ export class Order { /** * Order Status */ - 'status': Order.StatusEnum; + 'status': StatusEnum; 'complete': boolean; } @@ -67,7 +67,7 @@ export class Pet { /** * pet status in the store */ - 'status': Pet.StatusEnum; + 'status': StatusEnum; } export namespace Pet { From 5ae43a6364312d292991ddb200b62d2d8a607c6e Mon Sep 17 00:00:00 2001 From: wing328 Date: Fri, 5 Aug 2016 23:21:01 +0800 Subject: [PATCH 3/6] fix non-array enum datatype for TS --- .../codegen/languages/AbstractTypeScriptClientCodegen.java | 2 +- .../client/petstore/typescript-angular/API/Client/Order.ts | 6 +++--- .../client/petstore/typescript-angular/API/Client/Pet.ts | 6 +++--- .../petstore/typescript-angular2/default/model/Order.ts | 2 +- .../petstore/typescript-angular2/default/model/Pet.ts | 2 +- samples/client/petstore/typescript-angular2/npm/README.md | 4 ++-- .../client/petstore/typescript-angular2/npm/model/Order.ts | 2 +- .../client/petstore/typescript-angular2/npm/model/Pet.ts | 2 +- .../client/petstore/typescript-angular2/npm/package.json | 2 +- .../client/petstore/typescript-fetch/builds/default/api.ts | 4 ++-- .../petstore/typescript-fetch/builds/es6-target/api.ts | 4 ++-- .../typescript-fetch/builds/with-npm-version/api.ts | 4 ++-- samples/client/petstore/typescript-node/npm/api.ts | 4 ++-- 13 files changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java index 1fdcc63e384..36abcd16e7c 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -325,7 +325,7 @@ public Map postProcessModels(Map objs) { cm.imports = new TreeSet(cm.imports); for (CodegenProperty var : cm.vars) { // name enum with model name, e.g. StatuEnum => Pet.StatusEnum - if (Boolean.TRUE.equals(var.isEnum) && Boolean.TRUE.equals(var.isContainer)) { + if (Boolean.TRUE.equals(var.isEnum)) { var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, cm.classname + "." + var.enumName); } } diff --git a/samples/client/petstore/typescript-angular/API/Client/Order.ts b/samples/client/petstore/typescript-angular/API/Client/Order.ts index 61a4475c899..2131ca0f7fb 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Order.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Order.ts @@ -47,9 +47,9 @@ namespace API.Client { export namespace Order { export enum StatusEnum { - status = [C@2a55de3b, - status = [C@6b710933, - status = [C@4a132a60 + Placed = 'placed', + Approved = 'approved', + Delivered = 'delivered' } } } diff --git a/samples/client/petstore/typescript-angular/API/Client/Pet.ts b/samples/client/petstore/typescript-angular/API/Client/Pet.ts index 468723d0ee4..c5be91a92f0 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Pet.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Pet.ts @@ -47,9 +47,9 @@ namespace API.Client { export namespace Pet { export enum StatusEnum { - status = [C@14dd18cc, - status = [C@3f8703c7, - status = [C@39091e66 + Available = 'available', + Pending = 'pending', + Sold = 'sold' } } } diff --git a/samples/client/petstore/typescript-angular2/default/model/Order.ts b/samples/client/petstore/typescript-angular2/default/model/Order.ts index de8eab6482f..0d5ca98d914 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Order.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Order.ts @@ -37,7 +37,7 @@ export interface Order { /** * Order Status */ - status?: StatusEnum; + status?: Order.StatusEnum; complete?: boolean; diff --git a/samples/client/petstore/typescript-angular2/default/model/Pet.ts b/samples/client/petstore/typescript-angular2/default/model/Pet.ts index 70bf71ac71b..b9557dfb4b3 100644 --- a/samples/client/petstore/typescript-angular2/default/model/Pet.ts +++ b/samples/client/petstore/typescript-angular2/default/model/Pet.ts @@ -39,7 +39,7 @@ export interface Pet { /** * pet status in the store */ - status?: StatusEnum; + status?: Pet.StatusEnum; } export namespace Pet { diff --git a/samples/client/petstore/typescript-angular2/npm/README.md b/samples/client/petstore/typescript-angular2/npm/README.md index 86836a1f91b..b57ee5d3ac7 100644 --- a/samples/client/petstore/typescript-angular2/npm/README.md +++ b/samples/client/petstore/typescript-angular2/npm/README.md @@ -1,4 +1,4 @@ -## @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052253 +## @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052320 ### Building @@ -19,7 +19,7 @@ navigate to the folder of your consuming project and run one of next commando's. _published:_ ``` -npm install @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052253 --save +npm install @swagger/angular2-typescript-petstore@0.0.1-SNAPSHOT.201608052320 --save ``` _unPublished (not recommended):_ diff --git a/samples/client/petstore/typescript-angular2/npm/model/Order.ts b/samples/client/petstore/typescript-angular2/npm/model/Order.ts index de8eab6482f..0d5ca98d914 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Order.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Order.ts @@ -37,7 +37,7 @@ export interface Order { /** * Order Status */ - status?: StatusEnum; + status?: Order.StatusEnum; complete?: boolean; diff --git a/samples/client/petstore/typescript-angular2/npm/model/Pet.ts b/samples/client/petstore/typescript-angular2/npm/model/Pet.ts index 70bf71ac71b..b9557dfb4b3 100644 --- a/samples/client/petstore/typescript-angular2/npm/model/Pet.ts +++ b/samples/client/petstore/typescript-angular2/npm/model/Pet.ts @@ -39,7 +39,7 @@ export interface Pet { /** * pet status in the store */ - status?: StatusEnum; + status?: Pet.StatusEnum; } export namespace Pet { diff --git a/samples/client/petstore/typescript-angular2/npm/package.json b/samples/client/petstore/typescript-angular2/npm/package.json index d1c4718a014..7279d56588d 100644 --- a/samples/client/petstore/typescript-angular2/npm/package.json +++ b/samples/client/petstore/typescript-angular2/npm/package.json @@ -1,6 +1,6 @@ { "name": "@swagger/angular2-typescript-petstore", - "version": "0.0.1-SNAPSHOT.201608052253", + "version": "0.0.1-SNAPSHOT.201608052320", "description": "swagger client for @swagger/angular2-typescript-petstore", "author": "Swagger Codegen Contributors", "keywords": [ diff --git a/samples/client/petstore/typescript-fetch/builds/default/api.ts b/samples/client/petstore/typescript-fetch/builds/default/api.ts index 4901773359b..9f772737d80 100644 --- a/samples/client/petstore/typescript-fetch/builds/default/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/default/api.ts @@ -61,7 +61,7 @@ export interface Order { /** * Order Status */ - "status"?: StatusEnum; + "status"?: Order.StatusEnum; "complete"?: boolean; } @@ -75,7 +75,7 @@ export interface Pet { /** * pet status in the store */ - "status"?: StatusEnum; + "status"?: Pet.StatusEnum; } export type StatusEnum = "available" | "pending" | "sold"; diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts b/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts index de63695b216..a4e24e4d76c 100644 --- a/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts @@ -60,7 +60,7 @@ export interface Order { /** * Order Status */ - "status"?: StatusEnum; + "status"?: Order.StatusEnum; "complete"?: boolean; } @@ -74,7 +74,7 @@ export interface Pet { /** * pet status in the store */ - "status"?: StatusEnum; + "status"?: Pet.StatusEnum; } export type StatusEnum = "available" | "pending" | "sold"; diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts b/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts index 4901773359b..9f772737d80 100644 --- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts @@ -61,7 +61,7 @@ export interface Order { /** * Order Status */ - "status"?: StatusEnum; + "status"?: Order.StatusEnum; "complete"?: boolean; } @@ -75,7 +75,7 @@ export interface Pet { /** * pet status in the store */ - "status"?: StatusEnum; + "status"?: Pet.StatusEnum; } export type StatusEnum = "available" | "pending" | "sold"; diff --git a/samples/client/petstore/typescript-node/npm/api.ts b/samples/client/petstore/typescript-node/npm/api.ts index 0383f3d9d40..02128e1699e 100644 --- a/samples/client/petstore/typescript-node/npm/api.ts +++ b/samples/client/petstore/typescript-node/npm/api.ts @@ -47,7 +47,7 @@ export class Order { /** * Order Status */ - 'status': StatusEnum; + 'status': Order.StatusEnum; 'complete': boolean; } @@ -67,7 +67,7 @@ export class Pet { /** * pet status in the store */ - 'status': StatusEnum; + 'status': Pet.StatusEnum; } export namespace Pet { From 0aef938178e7bf59b330ef828492d3adee8eb6e4 Mon Sep 17 00:00:00 2001 From: wing328 Date: Sat, 6 Aug 2016 00:19:07 +0800 Subject: [PATCH 4/6] update build name for TS fetch petstore client --- samples/client/petstore/typescript-fetch/builds/default/pom.xml | 2 +- .../client/petstore/typescript-fetch/builds/es6-target/pom.xml | 2 +- .../petstore/typescript-fetch/builds/with-npm-version/pom.xml | 2 +- samples/client/petstore/typescript-fetch/tests/default/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/client/petstore/typescript-fetch/builds/default/pom.xml b/samples/client/petstore/typescript-fetch/builds/default/pom.xml index afcb5847ad9..53722c49e7b 100644 --- a/samples/client/petstore/typescript-fetch/builds/default/pom.xml +++ b/samples/client/petstore/typescript-fetch/builds/default/pom.xml @@ -4,7 +4,7 @@ TypeScriptAngularBuildPestoreClientTests pom 1.0-SNAPSHOT - TS Angular Build Petstore Client + TS Fetch Default Petstore Client diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/pom.xml b/samples/client/petstore/typescript-fetch/builds/es6-target/pom.xml index 52c43b2cd0d..8730e7c4377 100644 --- a/samples/client/petstore/typescript-fetch/builds/es6-target/pom.xml +++ b/samples/client/petstore/typescript-fetch/builds/es6-target/pom.xml @@ -4,7 +4,7 @@ TypeScriptAngularBuildES6PestoreClientTests pom 1.0-SNAPSHOT - TS Angular Build ES6 Petstore Client + TS Fetch ES6 Petstore Client diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/pom.xml b/samples/client/petstore/typescript-fetch/builds/with-npm-version/pom.xml index 0e7264cffb5..4a4380291ca 100644 --- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/pom.xml +++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/pom.xml @@ -4,7 +4,7 @@ TypeScriptAngularBuildWithNPMVersionPestoreClientTests pom 1.0-SNAPSHOT - TS Angular Build With NPM Version Petstore Client + TS Fetch Petstore Client (with npm) diff --git a/samples/client/petstore/typescript-fetch/tests/default/pom.xml b/samples/client/petstore/typescript-fetch/tests/default/pom.xml index 9108f6759a9..5e76c65dfed 100644 --- a/samples/client/petstore/typescript-fetch/tests/default/pom.xml +++ b/samples/client/petstore/typescript-fetch/tests/default/pom.xml @@ -4,7 +4,7 @@ TypeScriptFetchPestoreClientTests pom 1.0-SNAPSHOT - TS Fetch default Petstore Client + TS Fetch Petstore Test Client From ae0ac6356bef44b44bf6575310dc2c770cccd9c2 Mon Sep 17 00:00:00 2001 From: wing328 Date: Sat, 6 Aug 2016 15:25:58 +0800 Subject: [PATCH 5/6] restore TS fetch enum naming --- .../TypeScriptFetchClientCodegen.java | 24 +++++++++++++++++++ .../resources/TypeScript-Fetch/api.mustache | 2 +- .../typescript-fetch/builds/default/api.ts | 8 +++---- .../typescript-fetch/builds/es6-target/api.ts | 8 +++---- .../builds/with-npm-version/api.ts | 8 +++---- 5 files changed, 37 insertions(+), 13 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java index 1207af099c8..55bedb9f284 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java @@ -1,9 +1,14 @@ package io.swagger.codegen.languages; import io.swagger.codegen.CliOption; +import io.swagger.codegen.CodegenModel; +import io.swagger.codegen.CodegenProperty; import io.swagger.codegen.SupportingFile; import java.io.File; +import java.util.List; +import java.util.Map; +import java.util.TreeSet; public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodegen { @@ -72,4 +77,23 @@ public void setNpmVersion(String npmVersion) { this.npmVersion = npmVersion; } + @Override + public Map postProcessModels(Map objs) { + // process enum in models + List models = (List) postProcessModelsEnum(objs).get("models"); + for (Object _mo : models) { + Map mo = (Map) _mo; + CodegenModel cm = (CodegenModel) mo.get("model"); + cm.imports = new TreeSet(cm.imports); + for (CodegenProperty var : cm.vars) { + // name enum with model name, e.g. StatuEnum => Pet.StatusEnum + if (Boolean.TRUE.equals(var.isEnum)) { + var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, cm.classname + var.enumName); + } + } + } + + return objs; + } + } diff --git a/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache b/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache index e39b13a8014..ccde049717a 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache @@ -48,7 +48,7 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ {{#hasEnums}} {{#vars}} {{#isEnum}} -export type {{enumName}} = {{#allowableValues}}{{#values}}"{{{.}}}"{{^-last}} | {{/-last}}{{/values}}{{/allowableValues}}; +export type {{{datatypeWithEnum}}} = {{#allowableValues}}{{#values}}"{{{.}}}"{{^-last}} | {{/-last}}{{/values}}{{/allowableValues}}; {{/isEnum}} {{/vars}} {{/hasEnums}} diff --git a/samples/client/petstore/typescript-fetch/builds/default/api.ts b/samples/client/petstore/typescript-fetch/builds/default/api.ts index 9f772737d80..ee15be389c9 100644 --- a/samples/client/petstore/typescript-fetch/builds/default/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/default/api.ts @@ -61,11 +61,11 @@ export interface Order { /** * Order Status */ - "status"?: Order.StatusEnum; + "status"?: OrderStatusEnum; "complete"?: boolean; } -export type StatusEnum = "placed" | "approved" | "delivered"; +export type OrderStatusEnum = "placed" | "approved" | "delivered"; export interface Pet { "id"?: number; "category"?: Category; @@ -75,10 +75,10 @@ export interface Pet { /** * pet status in the store */ - "status"?: Pet.StatusEnum; + "status"?: PetStatusEnum; } -export type StatusEnum = "available" | "pending" | "sold"; +export type PetStatusEnum = "available" | "pending" | "sold"; export interface Tag { "id"?: number; "name"?: string; diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts b/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts index a4e24e4d76c..96b912c587f 100644 --- a/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/es6-target/api.ts @@ -60,11 +60,11 @@ export interface Order { /** * Order Status */ - "status"?: Order.StatusEnum; + "status"?: OrderStatusEnum; "complete"?: boolean; } -export type StatusEnum = "placed" | "approved" | "delivered"; +export type OrderStatusEnum = "placed" | "approved" | "delivered"; export interface Pet { "id"?: number; "category"?: Category; @@ -74,10 +74,10 @@ export interface Pet { /** * pet status in the store */ - "status"?: Pet.StatusEnum; + "status"?: PetStatusEnum; } -export type StatusEnum = "available" | "pending" | "sold"; +export type PetStatusEnum = "available" | "pending" | "sold"; export interface Tag { "id"?: number; "name"?: string; diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts b/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts index 9f772737d80..ee15be389c9 100644 --- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts +++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/api.ts @@ -61,11 +61,11 @@ export interface Order { /** * Order Status */ - "status"?: Order.StatusEnum; + "status"?: OrderStatusEnum; "complete"?: boolean; } -export type StatusEnum = "placed" | "approved" | "delivered"; +export type OrderStatusEnum = "placed" | "approved" | "delivered"; export interface Pet { "id"?: number; "category"?: Category; @@ -75,10 +75,10 @@ export interface Pet { /** * pet status in the store */ - "status"?: Pet.StatusEnum; + "status"?: PetStatusEnum; } -export type StatusEnum = "available" | "pending" | "sold"; +export type PetStatusEnum = "available" | "pending" | "sold"; export interface Tag { "id"?: number; "name"?: string; From 53a7381e52abdc1aa67cb4b8c8810a7fc1a9571f Mon Sep 17 00:00:00 2001 From: wing328 Date: Sat, 6 Aug 2016 23:09:37 +0800 Subject: [PATCH 6/6] [TS fetch]add test cases, fix enum integer naming --- .../AbstractTypeScriptClientCodegen.java | 7 +- .../TypeScriptFetchClientCodegen.java | 3 +- .../resources/TypeScript-Fetch/api.mustache | 2 +- .../fetch/TypeScriptFetchModelTest.java | 71 +++++++++++++++++++ 4 files changed, 78 insertions(+), 5 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java index 36abcd16e7c..71f7d32c5eb 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -260,7 +260,7 @@ public String getNameUsingModelPropertyNaming(String name) { @Override public String toEnumValue(String value, String datatype) { - if ("int".equals(datatype) || "double".equals(datatype) || "float".equals(datatype)) { + if ("number".equals(datatype)) { return value; } else { return "\'" + escapeText(value) + "\'"; @@ -280,8 +280,9 @@ public String toEnumVarName(String name, String datatype) { } // number - if ("int".equals(datatype) || "double".equals(datatype) || "float".equals(datatype)) { - String varName = new String(name); + if ("number".equals(datatype)) { + String varName = "NUMBER_" + name; + varName = varName.replaceAll("-", "MINUS_"); varName = varName.replaceAll("\\+", "PLUS_"); varName = varName.replaceAll("\\.", "_DOT_"); diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java index 55bedb9f284..edde98f3e8d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptFetchClientCodegen.java @@ -86,9 +86,10 @@ public Map postProcessModels(Map objs) { CodegenModel cm = (CodegenModel) mo.get("model"); cm.imports = new TreeSet(cm.imports); for (CodegenProperty var : cm.vars) { - // name enum with model name, e.g. StatuEnum => Pet.StatusEnum + // name enum with model name, e.g. StatuEnum => PetStatusEnum if (Boolean.TRUE.equals(var.isEnum)) { var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, cm.classname + var.enumName); + var.enumName = cm.classname + var.enumName; } } } diff --git a/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache b/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache index ccde049717a..ab0b3c8523b 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-Fetch/api.mustache @@ -48,7 +48,7 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ {{#hasEnums}} {{#vars}} {{#isEnum}} -export type {{{datatypeWithEnum}}} = {{#allowableValues}}{{#values}}"{{{.}}}"{{^-last}} | {{/-last}}{{/values}}{{/allowableValues}}; +export type {{{enumName}}} = {{#allowableValues}}{{#values}}"{{{.}}}"{{^-last}} | {{/-last}}{{/values}}{{/allowableValues}}; {{/isEnum}} {{/vars}} {{/hasEnums}} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescript/fetch/TypeScriptFetchModelTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescript/fetch/TypeScriptFetchModelTest.java index d1b0a4be233..f6eb8cb2b63 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescript/fetch/TypeScriptFetchModelTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescript/fetch/TypeScriptFetchModelTest.java @@ -12,11 +12,17 @@ import io.swagger.models.ArrayModel; import io.swagger.models.Model; import io.swagger.models.ModelImpl; +import io.swagger.models.properties.Property; import io.swagger.models.properties.ArrayProperty; import io.swagger.models.properties.DateTimeProperty; import io.swagger.models.properties.LongProperty; import io.swagger.models.properties.RefProperty; import io.swagger.models.properties.StringProperty; +import io.swagger.models.Swagger; +import io.swagger.parser.SwaggerParser; + +import java.util.HashMap; +import java.util.Arrays; @SuppressWarnings("static-method") public class TypeScriptFetchModelTest { @@ -180,4 +186,69 @@ public void mapModelTest() { Assert.assertEquals(cm.imports.size(), 1); Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("Children")).size(), 1); } + + @Test(description = "test enum array model") + public void enumArrayMdoelTest() { + final Swagger model = new SwaggerParser().read("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml"); + final DefaultCodegen codegen = new TypeScriptFetchClientCodegen(); + final Model definition = model.getDefinitions().get("EnumArrays"); + + Property property = definition.getProperties().get("array_enum"); + CodegenProperty prope = codegen.fromProperty("array_enum", property); + codegen.updateCodegenPropertyEnum(prope); + Assert.assertEquals(prope.datatypeWithEnum, "Array"); + Assert.assertEquals(prope.enumName, "ArrayEnumEnum"); + Assert.assertTrue(prope.isEnum); + Assert.assertEquals(prope.allowableValues.get("values"), Arrays.asList("fish", "crab")); + + HashMap fish= new HashMap(); + fish.put("name", "Fish"); + fish.put("value", "'fish'"); + HashMap crab= new HashMap(); + crab.put("name", "Crab"); + crab.put("value", "'crab'"); + Assert.assertEquals(prope.allowableValues.get("enumVars"), Arrays.asList(fish, crab)); + + // assert inner items + Assert.assertEquals(prope.datatypeWithEnum, "Array"); + Assert.assertEquals(prope.enumName, "ArrayEnumEnum"); + Assert.assertTrue(prope.items.isEnum); + Assert.assertEquals(prope.items.allowableValues.get("values"), Arrays.asList("fish", "crab")); + Assert.assertEquals(prope.items.allowableValues.get("enumVars"), Arrays.asList(fish, crab)); + + //IMPORTANT: these are not final enum values, which may be further updated + //by postProcessModels + + } + + @Test(description = "test enum model for values (numeric, string, etc)") + public void enumMdoelValueTest() { + final Swagger model = new SwaggerParser().read("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml"); + final DefaultCodegen codegen = new TypeScriptFetchClientCodegen(); + final Model definition = model.getDefinitions().get("Enum_Test"); + + Property property = definition.getProperties().get("enum_integer"); + CodegenProperty prope = codegen.fromProperty("enum_integer", property); + codegen.updateCodegenPropertyEnum(prope); + Assert.assertEquals(prope.datatypeWithEnum, "EnumIntegerEnum"); + Assert.assertEquals(prope.enumName, "EnumIntegerEnum"); + Assert.assertTrue(prope.isEnum); + Assert.assertNull(prope.isContainer); + Assert.assertNull(prope.items); + Assert.assertEquals(prope.allowableValues.get("values"), Arrays.asList(1, -1)); + + HashMap one = new HashMap(); + one.put("name", "NUMBER_1"); + one.put("value", "1"); + HashMap minusOne = new HashMap(); + minusOne.put("name", "NUMBER_MINUS_1"); + minusOne.put("value", "-1"); + Assert.assertEquals(prope.allowableValues.get("enumVars"), Arrays.asList(one, minusOne)); + + //IMPORTANT: these are not final enum values, which may be further updated + //by postProcessModels + + } + + }