Skip to content

Commit

Permalink
Merge 191a8ea into 4bc9673
Browse files Browse the repository at this point in the history
  • Loading branch information
tbrannam committed Apr 15, 2020
2 parents 4bc9673 + 191a8ea commit 648871a
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 2 deletions.
2 changes: 1 addition & 1 deletion packages/crud/src/crud/crud-routes.factory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ export class CrudRoutesFactory {
{},
)
: this.options.params;
const pathParamsMeta = Swagger.createPathParasmMeta(params);
const pathParamsMeta = Swagger.createPathParamsMeta(params);
Swagger.setParams([...metadata, ...pathParamsMeta], this.targetProto[name]);
}

Expand Down
3 changes: 2 additions & 1 deletion packages/crud/src/crud/swagger.helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,13 +212,14 @@ export class Swagger {
}
}

static createPathParasmMeta(options: ParamsOptions): any[] {
static createPathParamsMeta(options: ParamsOptions): any[] {
return swaggerConst
? objKeys(options).map((param) => ({
name: param,
required: true,
in: 'path',
type: options[param].type === 'number' ? Number : String,
enum: options[param].enum ? Object.values(options[param].enum) : undefined,
}))
: /* istanbul ignore next */ [];
}
Expand Down
2 changes: 2 additions & 0 deletions packages/crud/src/interfaces/params-options.interface.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { SwaggerEnumType } from '@nestjs/swagger/dist/types/swagger-enum.type';
import { ParamOptionType } from '@nestjsx/crud-request';

export interface ParamsOptions {
Expand All @@ -7,6 +8,7 @@ export interface ParamsOptions {
export interface ParamOption {
field?: string;
type?: ParamOptionType;
enum?: SwaggerEnumType;
primary?: boolean;
disabled?: boolean;
}
15 changes: 15 additions & 0 deletions packages/crud/test/crud.decorator.override.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,19 @@ describe('#crud', () => {
let server: any;
let qb: RequestQueryBuilder;

enum Field {
ONE = 'one',
}

@Crud({
model: { type: TestModel },
params: {
enumField: {
field: 'enum_field',
type: 'string',
enum: Field,
},
},
})
@Controller('test')
class TestController implements CrudController<TestModel> {
Expand Down Expand Up @@ -99,6 +110,10 @@ describe('#crud', () => {
const params = Swagger.getParams(TestController.prototype.getMany);
expect(Array.isArray(params)).toBe(true);
expect(params.length > 0).toBe(true);

const enumParam = params.find((param) => param.name === 'enumField');
expect(enumParam).toBeDefined();
expect(enumParam.enum).toEqual(['one']);
});
it('should return swagger response ok', () => {
const response = Swagger.getResponseOk(TestController.prototype.getMany);
Expand Down

0 comments on commit 648871a

Please sign in to comment.