From 1c62c3c710c20646c6b8d8d3dde6efd0f3cd113f Mon Sep 17 00:00:00 2001 From: Tue Date: Thu, 27 Oct 2022 09:09:48 +0700 Subject: [PATCH] build auth sms --- client/supplier_user.go | 69 +++++++++++++++++++++++++++++++-- model/supplier_user_request.go | 45 +++++++++++++++++---- model/supplier_user_response.go | 6 ++- subject/authsms.go | 10 ++++- 4 files changed, 116 insertions(+), 14 deletions(-) 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 9583b76..7241bad 100644 --- a/model/supplier_user_response.go +++ b/model/supplier_user_response.go @@ -1,5 +1,9 @@ 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 fd63148..7abb4c7 100644 --- a/subject/authsms.go +++ b/subject/authsms.go @@ -7,7 +7,13 @@ func getAuthSMSValue(val string) string { } var SupplierUser = struct { - CreateSupplierUser string + CreateSupplierOwnerUser string + UpdateSupplierOwnerUser string + CreateSupplierStaffUser string + UpdateSupplierStaffUser string }{ - CreateSupplierUser: getAuthSMSValue("create_supplier_user"), + CreateSupplierOwnerUser: getAuthSMSValue("create_supplier_owner_user"), + UpdateSupplierOwnerUser: getAuthSMSValue("update_supplier_owner_user"), + CreateSupplierStaffUser: getAuthSMSValue("create_supplier_staff_user"), + UpdateSupplierStaffUser: getAuthSMSValue("update_supplier_staff_user"), }