Skip to content

Commit

Permalink
Merge pull request #376 from m33ch/#355
Browse files Browse the repository at this point in the history
fix(crud) - add unique operationId and description response on swagger
  • Loading branch information
michaelyali committed Jan 21, 2020
2 parents ded1845 + e1e5f61 commit 9c10960
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
3 changes: 2 additions & 1 deletion packages/crud/src/crud/crud-routes.factory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,8 @@ export class CrudRoutesFactory {

private setSwaggerOperation(name: BaseRouteName) {
const summary = Swagger.operationsMap(this.modelName)[name];
Swagger.setOperation({ summary }, this.targetProto[name]);
const operationId = name + this.targetProto.constructor.name + this.modelName;
Swagger.setOperation({ summary, operationId }, this.targetProto[name]);
}

private setSwaggerPathParams(name: BaseRouteName) {
Expand Down
26 changes: 22 additions & 4 deletions packages/crud/src/crud/swagger.helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,12 @@ export class Swagger {

switch (name) {
case 'getOneBase':
return { [HttpStatus.OK]: { type: swaggerModels.get } };
return {
[HttpStatus.OK]: {
description: 'Get one base response',
type: swaggerModels.get,
},
};
case 'getManyBase':
/* istanbul ignore if */
if (oldVersion) {
Expand All @@ -104,8 +109,12 @@ export class Swagger {

return {
[HttpStatus.OK]: query.alwaysPaginate
? { type: swaggerModels.getMany }
? {
description: 'Get paginated response',
type: swaggerModels.getMany,
}
: {
description: 'Get many base response',
schema: {
oneOf: [
{ $ref: swagger.getSchemaPath(swaggerModels.getMany.name) },
Expand All @@ -129,6 +138,7 @@ export class Swagger {

return {
[HttpStatus.CREATED]: {
description: 'Get create one base response',
schema: { $ref: swagger.getSchemaPath(swaggerModels.create.name) },
},
};
Expand All @@ -146,9 +156,11 @@ export class Swagger {
return {
[HttpStatus.CREATED]: swaggerModels.createMany
? /* istanbul ignore next */ {
description: 'Get create many base response',
schema: { $ref: swagger.getSchemaPath(swaggerModels.createMany.name) },
}
: {
description: 'Get create many base response',
schema: {
type: 'array',
items: { $ref: swagger.getSchemaPath(swaggerModels.create.name) },
Expand All @@ -168,8 +180,13 @@ export class Swagger {
}
return {
[HttpStatus.OK]: routes.deleteOneBase.returnDeleted
? { schema: { $ref: swagger.getSchemaPath(swaggerModels.delete.name) } }
: {},
? {
description: 'Delete one base response',
schema: { $ref: swagger.getSchemaPath(swaggerModels.delete.name) },
}
: {
description: 'Delete one base response',
},
};
default:
const dto = swaggerModels[name.split('OneBase')[0]];
Expand All @@ -185,6 +202,7 @@ export class Swagger {

return {
[HttpStatus.OK]: {
description: 'Response',
schema: { $ref: swagger.getSchemaPath(dto.name) },
},
};
Expand Down

0 comments on commit 9c10960

Please sign in to comment.