diff --git a/app/database/entity/request_for_information_items.entity.go b/app/database/entity/request_for_information_items.entity.go index 79aab95..b93bcb7 100644 --- a/app/database/entity/request_for_information_items.entity.go +++ b/app/database/entity/request_for_information_items.entity.go @@ -3,11 +3,12 @@ package entity import "time" type RequestForInformationItems struct { - ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` - RequestedInfo string `json:"requested_info" gorm:"type:varchar"` - Reason string `json:"reason" gorm:"type:varchar"` - StatusId int `json:"status_id" gorm:"type:int4"` - IsActive *bool `json:"is_active" gorm:"type:bool"` - CreatedAt time.Time `json:"created_at" gorm:"default:now()"` - UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` + ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` + RequestForInformationId int `json:"request_for_information_id" gorm:"type:int4"` + RequestedInfo string `json:"requested_info" gorm:"type:varchar"` + Reason string `json:"reason" gorm:"type:varchar"` + StatusId int `json:"status_id" gorm:"type:int4"` + IsActive *bool `json:"is_active" gorm:"type:bool"` + CreatedAt time.Time `json:"created_at" gorm:"default:now()"` + UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` } diff --git a/app/module/request_for_information_items/controller/request_for_information_items.controller.go b/app/module/request_for_information_items/controller/request_for_information_items.controller.go index ca46858..5733146 100644 --- a/app/module/request_for_information_items/controller/request_for_information_items.controller.go +++ b/app/module/request_for_information_items/controller/request_for_information_items.controller.go @@ -50,9 +50,10 @@ func (_i *requestForInformationItemsController) All(c *fiber.Ctx) error { } reqContext := request.RequestForInformationItemsQueryRequestContext{ - RequestedInfo: c.Query("requested_info"), - Reason: c.Query("reason"), - StatusId: c.Query("status_id"), + RequestForInformationId: c.Query("request_for_information_id"), + RequestedInfo: c.Query("requested_info"), + Reason: c.Query("reason"), + StatusId: c.Query("status_id"), } req := reqContext.ToParamRequest() req.Pagination = paginate diff --git a/app/module/request_for_information_items/mapper/request_for_information_items.mapper.go b/app/module/request_for_information_items/mapper/request_for_information_items.mapper.go index f1bdc5a..fe10e88 100644 --- a/app/module/request_for_information_items/mapper/request_for_information_items.mapper.go +++ b/app/module/request_for_information_items/mapper/request_for_information_items.mapper.go @@ -8,13 +8,14 @@ import ( func RequestForInformationItemsResponseMapper(requestForInformationItemsReq *entity.RequestForInformationItems) (requestForInformationItemsRes *res.RequestForInformationItemsResponse) { if requestForInformationItemsReq != nil { requestForInformationItemsRes = &res.RequestForInformationItemsResponse{ - ID: requestForInformationItemsReq.ID, - RequestedInfo: requestForInformationItemsReq.RequestedInfo, - Reason: requestForInformationItemsReq.Reason, - StatusId: requestForInformationItemsReq.StatusId, - IsActive: requestForInformationItemsReq.IsActive, - CreatedAt: requestForInformationItemsReq.CreatedAt, - UpdatedAt: requestForInformationItemsReq.UpdatedAt, + ID: requestForInformationItemsReq.ID, + RequestForInformationId: requestForInformationItemsReq.RequestForInformationId, + RequestedInfo: requestForInformationItemsReq.RequestedInfo, + Reason: requestForInformationItemsReq.Reason, + StatusId: requestForInformationItemsReq.StatusId, + IsActive: requestForInformationItemsReq.IsActive, + CreatedAt: requestForInformationItemsReq.CreatedAt, + UpdatedAt: requestForInformationItemsReq.UpdatedAt, } } return requestForInformationItemsRes diff --git a/app/module/request_for_information_items/repository/request_for_information_items.repository.go b/app/module/request_for_information_items/repository/request_for_information_items.repository.go index a69a08b..dbaac23 100644 --- a/app/module/request_for_information_items/repository/request_for_information_items.repository.go +++ b/app/module/request_for_information_items/repository/request_for_information_items.repository.go @@ -38,6 +38,9 @@ func (_i *requestForInformationItemsRepository) GetAll(req request.RequestForInf query := _i.DB.DB.Model(&entity.RequestForInformationItems{}) query = query.Where("is_active = ?", true) + if req.RequestForInformationId != nil { + query = query.Where("request_for_information_id = ?", req.RequestForInformationId) + } if req.RequestedInfo != nil && *req.RequestedInfo != "" { requestedInfo := strings.ToLower(*req.RequestedInfo) query = query.Where("LOWER(requested_info) LIKE ?", "%"+strings.ToLower(requestedInfo)+"%") diff --git a/app/module/request_for_information_items/request/request_for_information_items.request.go b/app/module/request_for_information_items/request/request_for_information_items.request.go index f342847..1d68a71 100644 --- a/app/module/request_for_information_items/request/request_for_information_items.request.go +++ b/app/module/request_for_information_items/request/request_for_information_items.request.go @@ -12,53 +12,65 @@ type RequestForInformationItemsGeneric interface { } type RequestForInformationItemsQueryRequest struct { - RequestedInfo *string `json:"requested_info"` - Reason *string `json:"reason"` - StatusId *int `json:"status_id"` - Pagination *paginator.Pagination `json:"pagination"` + RequestForInformationId *int `json:"request_for_information_id"` + RequestedInfo *string `json:"requested_info"` + Reason *string `json:"reason"` + StatusId *int `json:"status_id"` + Pagination *paginator.Pagination `json:"pagination"` } type RequestForInformationItemsCreateRequest struct { - RequestedInfo string `json:"requested_info" validate:"required"` - Reason string `json:"reason" validate:"required"` - StatusId int `json:"status_id" validate:"required"` + RequestForInformationId int `json:"request_for_information_id" validate:"required"` + RequestedInfo string `json:"requested_info" validate:"required"` + Reason string `json:"reason" validate:"required"` + StatusId int `json:"status_id" validate:"required"` } func (req RequestForInformationItemsCreateRequest) ToEntity() *entity.RequestForInformationItems { return &entity.RequestForInformationItems{ - RequestedInfo: req.RequestedInfo, - Reason: req.Reason, - StatusId: req.StatusId, + RequestForInformationId: req.RequestForInformationId, + RequestedInfo: req.RequestedInfo, + Reason: req.Reason, + StatusId: req.StatusId, + IsActive: func() *bool { b := true; return &b }(), } } type RequestForInformationItemsUpdateRequest struct { - ID uint `json:"id" validate:"required"` - RequestedInfo string `json:"requested_info" validate:"required"` - Reason string `json:"reason" validate:"required"` - StatusId int `json:"status_id" validate:"required"` - UpdatedAt time.Time `json:"updated_at"` + ID uint `json:"id" validate:"required"` + RequestForInformationId int `json:"request_for_information_id" validate:"required"` + RequestedInfo string `json:"requested_info" validate:"required"` + Reason string `json:"reason" validate:"required"` + StatusId int `json:"status_id" validate:"required"` } func (req RequestForInformationItemsUpdateRequest) ToEntity() *entity.RequestForInformationItems { return &entity.RequestForInformationItems{ - ID: req.ID, - RequestedInfo: req.RequestedInfo, - Reason: req.Reason, - StatusId: req.StatusId, - UpdatedAt: req.UpdatedAt, + ID: req.ID, + RequestForInformationId: req.RequestForInformationId, + RequestedInfo: req.RequestedInfo, + Reason: req.Reason, + StatusId: req.StatusId, + UpdatedAt: time.Now(), } } type RequestForInformationItemsQueryRequestContext struct { - RequestedInfo string `json:"requested_info"` - Reason string `json:"reason"` - StatusId string `json:"status_id"` + RequestForInformationId string `json:"request_for_information_id"` + RequestedInfo string `json:"requested_info"` + Reason string `json:"reason"` + StatusId string `json:"status_id"` } func (req RequestForInformationItemsQueryRequestContext) ToParamRequest() RequestForInformationItemsQueryRequest { var request RequestForInformationItemsQueryRequest + if requestForInformationIdStr := req.RequestForInformationId; requestForInformationIdStr != "" { + requestForInformationId, err := strconv.Atoi(requestForInformationIdStr) + if err == nil { + request.RequestForInformationId = &requestForInformationId + } + } if requestedInfo := req.RequestedInfo; requestedInfo != "" { request.RequestedInfo = &requestedInfo } diff --git a/app/module/request_for_information_items/response/request_for_information_items.response.go b/app/module/request_for_information_items/response/request_for_information_items.response.go index 39eb833..fabf8ab 100644 --- a/app/module/request_for_information_items/response/request_for_information_items.response.go +++ b/app/module/request_for_information_items/response/request_for_information_items.response.go @@ -3,11 +3,12 @@ package response import "time" type RequestForInformationItemsResponse struct { - ID uint `json:"id"` - RequestedInfo string `json:"requested_info"` - Reason string `json:"reason"` - StatusId int `json:"status_id"` - IsActive *bool `json:"is_active"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` + ID uint `json:"id"` + RequestForInformationId int `json:"request_for_information_id"` + RequestedInfo string `json:"requested_info"` + Reason string `json:"reason"` + StatusId int `json:"status_id"` + IsActive *bool `json:"is_active"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` } diff --git a/app/module/request_for_information_replies/controller/request_for_information_replies.controller.go b/app/module/request_for_information_replies/controller/request_for_information_replies.controller.go index 624cfbd..d8564b2 100644 --- a/app/module/request_for_information_replies/controller/request_for_information_replies.controller.go +++ b/app/module/request_for_information_replies/controller/request_for_information_replies.controller.go @@ -105,6 +105,7 @@ func (_i *requestForInformationRepliesController) Show(c *fiber.Ctx) error { // @Description API for create RequestForInformationReplies // @Tags RequestForInformationReplies // @Security Bearer +// @Param Authorization header string true "Insert your access token" default(Bearer ) // @Param payload body request.RequestForInformationRepliesCreateRequest true "Required payload" // @Success 200 {object} response.Response // @Failure 400 {object} response.BadRequestError @@ -135,6 +136,7 @@ func (_i *requestForInformationRepliesController) Save(c *fiber.Ctx) error { // @Description API for update RequestForInformationReplies // @Tags RequestForInformationReplies // @Security Bearer +// @Param Authorization header string true "Insert your access token" default(Bearer ) // @Param payload body request.RequestForInformationRepliesUpdateRequest true "Required payload" // @Param id path int true "RequestForInformationReplies ID" // @Success 200 {object} response.Response diff --git a/app/module/request_for_information_replies/request/request_for_information_replies.request.go b/app/module/request_for_information_replies/request/request_for_information_replies.request.go index 8fd0be4..b8ecabd 100644 --- a/app/module/request_for_information_replies/request/request_for_information_replies.request.go +++ b/app/module/request_for_information_replies/request/request_for_information_replies.request.go @@ -32,6 +32,7 @@ func (req RequestForInformationRepliesCreateRequest) ToEntity() *entity.RequestF FileUrl: req.FileUrl, Response: req.Response, StatusId: req.StatusId, + IsActive: func() *bool { b := true; return &b }(), } } diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index 4bb72a1..6aa33fe 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -5308,6 +5308,11 @@ const docTemplate = `{ "name": "reason", "in": "query" }, + { + "type": "integer", + "name": "request_for_information_id", + "in": "query" + }, { "type": "string", "name": "requested_info", @@ -5701,6 +5706,14 @@ const docTemplate = `{ ], "summary": "Create RequestForInformationReplies", "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + }, { "description": "Required payload", "name": "payload", @@ -5799,6 +5812,14 @@ const docTemplate = `{ ], "summary": "update RequestForInformationReplies", "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + }, { "description": "Required payload", "name": "payload", @@ -6120,6 +6141,14 @@ const docTemplate = `{ ], "summary": "update RequestForInformations", "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + }, { "description": "Required payload", "name": "payload", @@ -8273,6 +8302,7 @@ const docTemplate = `{ "type": "object", "required": [ "reason", + "request_for_information_id", "requested_info", "status_id" ], @@ -8280,6 +8310,9 @@ const docTemplate = `{ "reason": { "type": "string" }, + "request_for_information_id": { + "type": "integer" + }, "requested_info": { "type": "string" }, @@ -8293,6 +8326,7 @@ const docTemplate = `{ "required": [ "id", "reason", + "request_for_information_id", "requested_info", "status_id" ], @@ -8303,14 +8337,14 @@ const docTemplate = `{ "reason": { "type": "string" }, + "request_for_information_id": { + "type": "integer" + }, "requested_info": { "type": "string" }, "status_id": { "type": "integer" - }, - "updated_at": { - "type": "string" } } }, diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 8a27c7d..e442725 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -5297,6 +5297,11 @@ "name": "reason", "in": "query" }, + { + "type": "integer", + "name": "request_for_information_id", + "in": "query" + }, { "type": "string", "name": "requested_info", @@ -5690,6 +5695,14 @@ ], "summary": "Create RequestForInformationReplies", "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + }, { "description": "Required payload", "name": "payload", @@ -5788,6 +5801,14 @@ ], "summary": "update RequestForInformationReplies", "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + }, { "description": "Required payload", "name": "payload", @@ -6109,6 +6130,14 @@ ], "summary": "update RequestForInformations", "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + }, { "description": "Required payload", "name": "payload", @@ -8262,6 +8291,7 @@ "type": "object", "required": [ "reason", + "request_for_information_id", "requested_info", "status_id" ], @@ -8269,6 +8299,9 @@ "reason": { "type": "string" }, + "request_for_information_id": { + "type": "integer" + }, "requested_info": { "type": "string" }, @@ -8282,6 +8315,7 @@ "required": [ "id", "reason", + "request_for_information_id", "requested_info", "status_id" ], @@ -8292,14 +8326,14 @@ "reason": { "type": "string" }, + "request_for_information_id": { + "type": "integer" + }, "requested_info": { "type": "string" }, "status_id": { "type": "integer" - }, - "updated_at": { - "type": "string" } } }, diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index c060411..7ffd5b8 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -373,12 +373,15 @@ definitions: properties: reason: type: string + request_for_information_id: + type: integer requested_info: type: string status_id: type: integer required: - reason + - request_for_information_id - requested_info - status_id type: object @@ -388,15 +391,16 @@ definitions: type: integer reason: type: string + request_for_information_id: + type: integer requested_info: type: string status_id: type: integer - updated_at: - type: string required: - id - reason + - request_for_information_id - requested_info - status_id type: object @@ -4118,6 +4122,9 @@ paths: - in: query name: reason type: string + - in: query + name: request_for_information_id + type: integer - in: query name: requested_info type: string @@ -4363,6 +4370,12 @@ paths: post: description: API for create RequestForInformationReplies parameters: + - default: Bearer + description: Insert your access token + in: header + name: Authorization + required: true + type: string - description: Required payload in: body name: payload @@ -4455,6 +4468,12 @@ paths: put: description: API for update RequestForInformationReplies parameters: + - default: Bearer + description: Insert your access token + in: header + name: Authorization + required: true + type: string - description: Required payload in: body name: payload @@ -4657,6 +4676,12 @@ paths: put: description: API for update RequestForInformations parameters: + - default: Bearer + description: Insert your access token + in: header + name: Authorization + required: true + type: string - description: Required payload in: body name: payload