diff --git a/client/product.go b/client/product.go index febc8d1..2b72a1b 100644 --- a/client/product.go +++ b/client/product.go @@ -67,3 +67,20 @@ func (c Product) ProcessApplyRequest(p model.ProductApplyRequestPayload) error { } return nil } + +func (c Product) RequestChangeStatus(p model.ProductRequestChangeStatus) error { + msg, err := natsio.GetServer().Request(subject.Product.RequestChangeStatus, toBytes(p)) + if err != nil { + return err + } + var r struct { + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} diff --git a/model/product_request.go b/model/product_request.go index cf82b45..3b0fd65 100644 --- a/model/product_request.go +++ b/model/product_request.go @@ -7,3 +7,8 @@ type ProductApplyRequestPayload struct { type ProductCreateStepsPayload struct { RequestID string `json:"requestId"` } + +type ProductRequestChangeStatus struct { + RequestID string `json:"requestId"` + Status string `json:"status"` +} diff --git a/subject/product.go b/subject/product.go index 7a6035f..2acfadc 100644 --- a/subject/product.go +++ b/subject/product.go @@ -11,8 +11,10 @@ var Product = struct { ApplyRequest string CreateRequestStep string ProcessApplyRequest string + RequestChangeStatus string }{ ApplyRequest: getProductValue("apply_request"), CreateRequestStep: getProductValue("create_request_step"), ProcessApplyRequest: getProductValue("process_apply_request"), + RequestChangeStatus: getProductValue("request_change_status"), }