diff --git a/client/supplier_user.go b/client/supplier_user.go new file mode 100644 index 0000000..f5abc1f --- /dev/null +++ b/client/supplier_user.go @@ -0,0 +1,38 @@ +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" +) + +// SupplierUser ... +type SupplierUser struct{} + +// GetSupplierUser ... +func GetSupplierUser() SupplierUser { + return SupplierUser{} +} + +func (s SupplierUser) CreateSupplierUserS(p model.CreateSupplierUserRequest) (*model.CreateSupplierUserResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateSupplierUser, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.CreateSupplierUserResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} diff --git a/model/supplier_user_request.go b/model/supplier_user_request.go new file mode 100644 index 0000000..6dc9df8 --- /dev/null +++ b/model/supplier_user_request.go @@ -0,0 +1,10 @@ +package model + +type CreateSupplierUserRequest struct { + Name string `json:"name"` + Phone string `json:"phone"` + Email string `json:"email"` + Supplier string `json:"supplier"` + Role string `json:"role"` + Password string `json:"password"` +} diff --git a/model/supplier_user_response.go b/model/supplier_user_response.go new file mode 100644 index 0000000..9583b76 --- /dev/null +++ b/model/supplier_user_response.go @@ -0,0 +1,5 @@ +package model + +type CreateSupplierUserResponse struct { + ID string `json:"_id"` +} diff --git a/subject/authsms.go b/subject/authsms.go new file mode 100644 index 0000000..fd63148 --- /dev/null +++ b/subject/authsms.go @@ -0,0 +1,13 @@ +package subject + +import "fmt" + +func getAuthSMSValue(val string) string { + return fmt.Sprintf("%s.%s", prefixes.SupplierUser, val) +} + +var SupplierUser = struct { + CreateSupplierUser string +}{ + CreateSupplierUser: getAuthSMSValue("create_supplier_user"), +} diff --git a/subject/config.go b/subject/config.go index 4a2f9f3..d50d9d4 100644 --- a/subject/config.go +++ b/subject/config.go @@ -9,6 +9,7 @@ var prefixes = struct { Bank string Supplier string Seller string + SupplierUser string }{ Communication: "communication", Order: "order", @@ -18,4 +19,5 @@ var prefixes = struct { Supplier: "supplier", Bank: "bank", Seller: "seller", + SupplierUser: "supplier_user", }