diff --git a/client/notification.go b/client/notification.go new file mode 100644 index 0000000..66c4b52 --- /dev/null +++ b/client/notification.go @@ -0,0 +1,31 @@ +package client + +import ( + "encoding/json" + "errors" + + "git.selly.red/Selly-Modules/natsio" + "git.selly.red/Selly-Modules/natsio/model" + "git.selly.red/Selly-Modules/natsio/subject" +) + +func GetNotification() Notification { + return Notification{} +} + +type Notification struct{} + +func (n Notification) SupplierChangeBalanceRequestApproved(p model.NotificationSupplierChangeBalanceRequestApprovedReq) error { + msg, err := natsio.GetServer().Request(subject.Notification.SupplierChangeBalanceRequestApproved, toBytes(p)) + if err != nil { + return err + } + var r model.CommonResponseData + 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/notification_request.go b/model/notification_request.go new file mode 100644 index 0000000..bbef9c4 --- /dev/null +++ b/model/notification_request.go @@ -0,0 +1,7 @@ +package model + +type NotificationSupplierChangeBalanceRequestApprovedReq struct { + SupplierID string `json:"supplierId"` + Cash float64 `json:"cash"` + Reason string `json:"reason"` +} diff --git a/model/notification_response.go b/model/notification_response.go new file mode 100644 index 0000000..8b53790 --- /dev/null +++ b/model/notification_response.go @@ -0,0 +1 @@ +package model diff --git a/subject/config.go b/subject/config.go index d524068..31a9b19 100644 --- a/subject/config.go +++ b/subject/config.go @@ -9,6 +9,7 @@ var prefixes = struct { Location string Bank string Supplier string + Notification string Seller string AuthSMS string Selly string @@ -23,6 +24,7 @@ var prefixes = struct { Warehouse: "warehouse", Location: "location", Supplier: "supplier", + Notification: "notification", Bank: "bank", Seller: "seller", AuthSMS: "auth_sms", diff --git a/subject/notification.go b/subject/notification.go new file mode 100644 index 0000000..317655f --- /dev/null +++ b/subject/notification.go @@ -0,0 +1,13 @@ +package subject + +import "fmt" + +func getNotificationValue(val string) string { + return fmt.Sprintf("%s.%s", prefixes.Notification, val) +} + +var Notification = struct { + SupplierChangeBalanceRequestApproved string +}{ + SupplierChangeBalanceRequestApproved: getNotificationValue("supplier_change_balance_request_approved"), +}