diff --git a/client/supplier_user.go b/client/supplier_user.go index f5abc1f..8bb10c5 100644 --- a/client/supplier_user.go +++ b/client/supplier_user.go @@ -16,15 +16,15 @@ 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)) +func (s SupplierUser) CreateSupplierOwnerUsers(p model.CreateSupplierOwnerUserRequest) (*model.CreateSupplierUserOwnerResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateSupplierOwnerUser, toBytes(p)) if err != nil { return nil, err } var r struct { - Data *model.CreateSupplierUserResponse `json:"data"` - Error string `json:"error"` + Data *model.CreateSupplierUserOwnerResponse `json:"data"` + Error string `json:"error"` } if err = json.Unmarshal(msg.Data, &r); err != nil { @@ -36,3 +36,64 @@ func (s SupplierUser) CreateSupplierUserS(p model.CreateSupplierUserRequest) (*m return r.Data, nil } + +func (s SupplierUser) UpdateSupplierOwnerUsers(p model.UpdateSupplierOwnerUserRequest) error { + msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateSupplierOwnerUser, 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 +} + +func (s SupplierUser) CreateSupplierStaffUsers(p model.CreateSupplierStaffUserRequest) (*model.CreateSupplierUserStaffResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateSupplierStaffUser, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.CreateSupplierUserStaffResponse `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 +} + +func (s SupplierUser) UpdateSupplierStaffUsers(p model.CreateSupplierStaffUserRequest) error { + msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateSupplierStaffUser, 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/supplier_user_request.go b/model/supplier_user_request.go index 6dc9df8..f4556b2 100644 --- a/model/supplier_user_request.go +++ b/model/supplier_user_request.go @@ -1,10 +1,41 @@ 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"` +type CreateSupplierOwnerUserRequest struct { + Name string `json:"name"` + Phone string `json:"phone"` + Email string `json:"email"` + SupplierID string `json:"supplierId"` + RoleID string `json:"roleId"` + Password string `json:"password"` +} + +type UpdateSupplierOwnerUserRequest struct { + ID string `json:"_id"` + SupplierID string `json:"supplierId"` + Name string `json:"name"` + Phone string `json:"phone"` + Email string `json:"email"` + RoleID string `json:"roleId"` +} + +type CreateSupplierStaffUserRequest struct { + Name string `json:"name"` + Phone string `json:"phone"` + Email string `json:"email"` + SupplierID string `json:"supplierId"` + RoleID string `json:"roleId"` + Password string `json:"password"` + Warehouses []string `json:"warehouses"` +} + +type UpdateSupplierStaffUserRequest struct { + ID string `json:"_id"` + Name string `json:"name"` + Phone string `json:"phone"` + Email string `json:"email"` + SupplierID string `json:"supplierId"` + Role string `json:"role"` + Password string `json:"password"` + Warehouses []string `json:"warehouses"` + RoleId string `json:"roleId"` } diff --git a/model/supplier_user_response.go b/model/supplier_user_response.go index a71ee2a..5e1e098 100644 --- a/model/supplier_user_response.go +++ b/model/supplier_user_response.go @@ -1,6 +1,10 @@ package model -type CreateSupplierUserResponse struct { +type CreateSupplierUserOwnerResponse struct { + ID string `json:"_id"` +} + +type CreateSupplierUserStaffResponse struct { ID string `json:"_id"` } diff --git a/subject/authsms.go b/subject/authsms.go index 5b6b2e4..7abb4c7 100644 --- a/subject/authsms.go +++ b/subject/authsms.go @@ -6,10 +6,14 @@ func getAuthSMSValue(val string) string { return fmt.Sprintf("%s.%s", prefixes.SupplierUser, val) } -var AuthSMS = struct { - CreateUserSMS string - GetListPermission string +var SupplierUser = struct { + CreateSupplierOwnerUser string + UpdateSupplierOwnerUser string + CreateSupplierStaffUser string + UpdateSupplierStaffUser string }{ - CreateUserSMS: getAuthSMSValue("create_user_sms"), - GetListPermission: getAuthSMSValue("get_list_permission"), + CreateSupplierOwnerUser: getAuthSMSValue("create_supplier_owner_user"), + UpdateSupplierOwnerUser: getAuthSMSValue("update_supplier_owner_user"), + CreateSupplierStaffUser: getAuthSMSValue("create_supplier_staff_user"), + UpdateSupplierStaffUser: getAuthSMSValue("update_supplier_staff_user"), }