Browse Source

Feat(swagger): Added examples

master
Samuel Pua 3 years ago
parent
commit
e99182da51
  1. 18
      backend/docs/docs.go
  2. 18
      backend/docs/swagger.json
  3. 8
      backend/docs/swagger.yaml
  4. 10
      backend/internal/ktmtrainbot/bookingmodel.go

18
backend/docs/docs.go

@ -424,17 +424,22 @@ const docTemplate = `{
"ktmtrainbot.BookingCreateRequest": { "ktmtrainbot.BookingCreateRequest": {
"type": "object", "type": "object",
"required": [ "required": [
"contact",
"gender",
"name", "name",
"passport", "passport",
"passportExpiry", "passportExpiry",
"timeCode",
"travelDate" "travelDate"
], ],
"properties": { "properties": {
"contact": { "contact": {
"type": "string"
"type": "string",
"example": "+6512345678"
}, },
"gender": { "gender": {
"type": "string"
"type": "string",
"example": "M"
}, },
"name": { "name": {
"type": "string" "type": "string"
@ -443,13 +448,16 @@ const docTemplate = `{
"type": "string" "type": "string"
}, },
"passportExpiry": { "passportExpiry": {
"type": "string"
"type": "string",
"format": "date-time"
}, },
"timeCode": { "timeCode": {
"type": "string"
"type": "string",
"example": "1300"
}, },
"travelDate": { "travelDate": {
"type": "string"
"type": "string",
"format": "date-time"
} }
} }
}, },

18
backend/docs/swagger.json

@ -416,17 +416,22 @@
"ktmtrainbot.BookingCreateRequest": { "ktmtrainbot.BookingCreateRequest": {
"type": "object", "type": "object",
"required": [ "required": [
"contact",
"gender",
"name", "name",
"passport", "passport",
"passportExpiry", "passportExpiry",
"timeCode",
"travelDate" "travelDate"
], ],
"properties": { "properties": {
"contact": { "contact": {
"type": "string"
"type": "string",
"example": "+6512345678"
}, },
"gender": { "gender": {
"type": "string"
"type": "string",
"example": "M"
}, },
"name": { "name": {
"type": "string" "type": "string"
@ -435,13 +440,16 @@
"type": "string" "type": "string"
}, },
"passportExpiry": { "passportExpiry": {
"type": "string"
"type": "string",
"format": "date-time"
}, },
"timeCode": { "timeCode": {
"type": "string"
"type": "string",
"example": "1300"
}, },
"travelDate": { "travelDate": {
"type": "string"
"type": "string",
"format": "date-time"
} }
} }
}, },

8
backend/docs/swagger.yaml

@ -24,23 +24,31 @@ definitions:
ktmtrainbot.BookingCreateRequest: ktmtrainbot.BookingCreateRequest:
properties: properties:
contact: contact:
example: "+6512345678"
type: string type: string
gender: gender:
example: M
type: string type: string
name: name:
type: string type: string
passport: passport:
type: string type: string
passportExpiry: passportExpiry:
format: date-time
type: string type: string
timeCode: timeCode:
example: "1300"
type: string type: string
travelDate: travelDate:
format: date-time
type: string type: string
required: required:
- contact
- gender
- name - name
- passport - passport
- passportExpiry - passportExpiry
- timeCode
- travelDate - travelDate
type: object type: object
ktmtrainbot.BookingResponse: ktmtrainbot.BookingResponse:

10
backend/internal/ktmtrainbot/bookingmodel.go

@ -27,13 +27,13 @@ type Booking struct {
} }
type BookingCreateRequest struct { type BookingCreateRequest struct {
TravelDate time.Time `json:"travelDate" validate:"required"`
TimeCode string `json:"timeCode" validate:"required len=4"`
TravelDate time.Time `json:"travelDate" validate:"required" swaggertype:"string" format:"date-time"`
TimeCode string `json:"timeCode" validate:"required,number,len=4" swaggertype:"string" example:"1300"`
Name string `json:"name" validate:"required"` Name string `json:"name" validate:"required"`
Gender string `json:"gender" validate:"required len=1 containsany=MF"`
Gender string `json:"gender" validate:"required,len=1,containsany=MF" swaggertype:"string" example:"M" enum:"M,F"`
Passport string `json:"passport" validate:"required"` Passport string `json:"passport" validate:"required"`
PassportExpiry time.Time `json:"passportExpiry" validate:"required"`
Contact string `json:"contact" validate:"required e164"`
PassportExpiry time.Time `json:"passportExpiry" validate:"required" swaggertype:"string" format:"date-time"`
Contact string `json:"contact" validate:"required,e164" swaggertype:"string" example:"+6512345678"`
} }
type BookingResponse struct { type BookingResponse struct {

Loading…
Cancel
Save