I'm using @Schema({ timestamps: true }) to add createdAt & updatedAt to my records and returning these with the response. But seems the OpenAPI spec getting generated by the NestJs's Swagger plugin is not adding the createdAt or updatedAt. How can I get these two added to the generated OpenAPI spec.
openapi: 3.0.0
paths:
/participants/{participantId}:
get:
operationId: ParticipantController_findOne
parameters:
- name: participantId
required: true
in: path
schema:
type: string
responses:
'200':
description: The participant
content:
application/json:
schema:
$ref: '#/components/schemas/Participant'
components:
schemas:
Participant:
type: object
properties:
name:
type: string
description:
type: string
participantId:
type: string
required:
- name
- description
- participantId
My controller looks like this
@ApiOkResponse({
description: 'Get a participant',
type: Participant,
})
@Get(':participantId')
findOne(
@Param('participantId') participantId: string,
): Promise <Participant> {
return this.participantService.findOne(participantId);
}
My Mongoose schema looks like this,
@Schema({ timestamps: true })
export class Participant {
@Prop()
@ApiProperty()
participantId: string;
@Prop()
@ApiProperty()
name: string;
@Prop()
@ApiProperty()
description: string;
}
export const ParticipantSchema = SchemaFactory.createForClass(Participant);
My response looks like this,
{
"name": "Participant One",
"description": "The particicpant one",
"participantId": "participant-001",
"createdAt": "2022-10-14T20:00:52.778Z", // Added automatically by the `timestamps: true`
"updatedAt": "2022-10-14T20:04:31.081Z",// Added automatically by the `timestamps: true`
}