build authsms #53

Merged
Ghost merged 1 commits from build-auth-sms into master 2022-10-28 02:32:10 +00:00
9 changed files with 191 additions and 36 deletions

58
client/supplier_role.go Normal file
View File

@ -0,0 +1,58 @@
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"
)
// SupplierRole ...
type SupplierRole struct{}
// GetSupplierRole ...
func GetSupplierRole() SupplierRole {
return SupplierRole{}
}
func (s SupplierRole) CreateRole(p model.CreateRoleRequest) (*model.CreateRoleResponse, error) {
msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateOwner, toBytes(p))
if err != nil {
return nil, err
}
var r struct {
Data *model.CreateRoleResponse `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 SupplierRole) UpdateRole(p model.UpdateRoleRequest) error {
msg, err := natsio.GetServer().Request(subject.SupplierRole.Update, 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
}

View File

@ -16,14 +16,14 @@ func GetSupplierUser() SupplierUser {
return SupplierUser{} return SupplierUser{}
} }
func (s SupplierUser) CreateSupplierOwnerUsers(p model.CreateSupplierOwnerUserRequest) (*model.CreateSupplierUserOwnerResponse, error) { func (s SupplierUser) CreateSupplierOwnerUsers(p model.CreateOwnerRequest) (*model.CreateOwnerResponse, error) {
msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateSupplierOwnerUser, toBytes(p)) msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateOwner, toBytes(p))
if err != nil { if err != nil {
return nil, err return nil, err
} }
var r struct { var r struct {
Data *model.CreateSupplierUserOwnerResponse `json:"data"` Data *model.CreateOwnerResponse `json:"data"`
Error string `json:"error"` Error string `json:"error"`
} }
@ -37,8 +37,8 @@ func (s SupplierUser) CreateSupplierOwnerUsers(p model.CreateSupplierOwnerUserRe
return r.Data, nil return r.Data, nil
} }
func (s SupplierUser) UpdateSupplierOwnerUsers(p model.UpdateSupplierOwnerUserRequest) error { func (s SupplierUser) UpdateSupplierOwnerUsers(p model.UpdateOwnerRequest) error {
msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateSupplierOwnerUser, toBytes(p)) msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateOwner, toBytes(p))
if err != nil { if err != nil {
return err return err
} }
@ -57,14 +57,14 @@ func (s SupplierUser) UpdateSupplierOwnerUsers(p model.UpdateSupplierOwnerUserRe
return nil return nil
} }
func (s SupplierUser) CreateSupplierStaffUsers(p model.CreateSupplierStaffUserRequest) (*model.CreateSupplierUserStaffResponse, error) { func (s SupplierUser) CreateSupplierStaffUsers(p model.CreateStaffRequest) (*model.CreateStaffResponse, error) {
msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateSupplierStaffUser, toBytes(p)) msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateStaff, toBytes(p))
if err != nil { if err != nil {
return nil, err return nil, err
} }
var r struct { var r struct {
Data *model.CreateSupplierUserStaffResponse `json:"data"` Data *model.CreateStaffResponse `json:"data"`
Error string `json:"error"` Error string `json:"error"`
} }
@ -78,8 +78,8 @@ func (s SupplierUser) CreateSupplierStaffUsers(p model.CreateSupplierStaffUserRe
return r.Data, nil return r.Data, nil
} }
func (s SupplierUser) UpdateSupplierStaffUsers(p model.CreateSupplierStaffUserRequest) error { func (s SupplierUser) UpdateSupplierStaffUsers(p model.UpdateStaffRequest) error {
msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateSupplierStaffUser, toBytes(p)) msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateStaff, toBytes(p))
if err != nil { if err != nil {
return err return err
} }
@ -97,3 +97,44 @@ func (s SupplierUser) UpdateSupplierStaffUsers(p model.CreateSupplierStaffUserRe
return nil return nil
} }
func (s SupplierUser) UpdateStatus(p model.UpdateStatusRequest) error {
msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateStaff, 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) ResetPassword(p model.ResetPasswordRequest) (*model.ResetPasswordResponse, error) {
msg, err := natsio.GetServer().Request(subject.SupplierUser.ResetPassword, toBytes(p))
if err != nil {
return nil, err
}
var r struct {
Data *model.ResetPasswordResponse `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
}

View File

@ -0,0 +1,14 @@
package model
type CreateRoleRequest struct {
Name string `json:"name"`
Code string `json:"code"`
Type string `json:"type"`
}
type UpdateRoleRequest struct {
ID string `json:"_id"`
Name string `json:"name"`
Code string `json:"code"`
Type string `json:"type"`
}

View File

@ -0,0 +1,5 @@
package model
type CreateRoleResponse struct {
ID string `json:"_id"`
}

View File

@ -1,6 +1,6 @@
package model package model
type CreateSupplierOwnerUserRequest struct { type CreateOwnerRequest struct {
Name string `json:"name"` Name string `json:"name"`
Phone string `json:"phone"` Phone string `json:"phone"`
Email string `json:"email"` Email string `json:"email"`
@ -9,7 +9,7 @@ type CreateSupplierOwnerUserRequest struct {
Password string `json:"password"` Password string `json:"password"`
} }
type UpdateSupplierOwnerUserRequest struct { type UpdateOwnerRequest struct {
ID string `json:"_id"` ID string `json:"_id"`
SupplierID string `json:"supplierId"` SupplierID string `json:"supplierId"`
Name string `json:"name"` Name string `json:"name"`
@ -18,7 +18,7 @@ type UpdateSupplierOwnerUserRequest struct {
RoleID string `json:"roleId"` RoleID string `json:"roleId"`
} }
type CreateSupplierStaffUserRequest struct { type CreateStaffRequest struct {
Name string `json:"name"` Name string `json:"name"`
Phone string `json:"phone"` Phone string `json:"phone"`
Email string `json:"email"` Email string `json:"email"`
@ -28,14 +28,24 @@ type CreateSupplierStaffUserRequest struct {
Warehouses []string `json:"warehouses"` Warehouses []string `json:"warehouses"`
} }
type UpdateSupplierStaffUserRequest struct { type UpdateStaffRequest struct {
ID string `json:"_id"` ID string `json:"_id"`
Name string `json:"name"` Name string `json:"name"`
Phone string `json:"phone"` Phone string `json:"phone"`
Email string `json:"email"` Email string `json:"email"`
SupplierID string `json:"supplierId"` SupplierID string `json:"supplierId"`
Role string `json:"role"` RoleID string `json:"roleId"`
Password string `json:"password"` Password string `json:"password"`
SupplierUserWarehouseID string `json:"supplierUserWarehouseId"`
Warehouses []string `json:"warehouses"` Warehouses []string `json:"warehouses"`
RoleId string `json:"roleId"` }
type UpdateStatusRequest struct {
ID string `json:"_id"`
Status string `json:"status"`
}
type ResetPasswordRequest struct {
ID string `json:"_id"`
Password string `json:"password"`
} }

View File

@ -1,9 +1,13 @@
package model package model
type CreateSupplierUserOwnerResponse struct { type CreateOwnerResponse struct {
ID string `json:"_id"` ID string `json:"_id"`
} }
type CreateSupplierUserStaffResponse struct { type CreateStaffResponse struct {
ID string `json:"_id"` ID string `json:"_id"`
} }
type ResetPasswordResponse struct {
Password string `json:"password"`
}

View File

@ -10,6 +10,7 @@ var prefixes = struct {
Supplier string Supplier string
Seller string Seller string
SupplierUser string SupplierUser string
SupplierRole string
}{ }{
Communication: "communication", Communication: "communication",
Order: "order", Order: "order",
@ -20,4 +21,5 @@ var prefixes = struct {
Bank: "bank", Bank: "bank",
Seller: "seller", Seller: "seller",
SupplierUser: "supplier_user", SupplierUser: "supplier_user",
SupplierRole: "supplier_role",
} }

15
subject/supplier_role.go Normal file
View File

@ -0,0 +1,15 @@
package subject
import "fmt"
func getRoleValue(val string) string {
return fmt.Sprintf("%s.%s", prefixes.SupplierRole, val)
}
var SupplierRole = struct {
Create string
Update string
}{
Create: getRoleValue("create"),
Update: getRoleValue("update"),
}

View File

@ -2,18 +2,24 @@ package subject
import "fmt" import "fmt"
func getAuthSMSValue(val string) string { func getSupplierUserValue(val string) string {
return fmt.Sprintf("%s.%s", prefixes.SupplierUser, val) return fmt.Sprintf("%s.%s", prefixes.SupplierUser, val)
} }
var SupplierUser = struct { var SupplierUser = struct {
CreateSupplierOwnerUser string // Users
UpdateSupplierOwnerUser string CreateOwner string
CreateSupplierStaffUser string UpdateOwner string
UpdateSupplierStaffUser string CreateStaff string
UpdateStaff string
UpdateStatus string
ResetPassword string
}{ }{
CreateSupplierOwnerUser: getAuthSMSValue("create_supplier_owner_user"), // Users
UpdateSupplierOwnerUser: getAuthSMSValue("update_supplier_owner_user"), CreateOwner: getSupplierUserValue("create_owner"),
CreateSupplierStaffUser: getAuthSMSValue("create_supplier_staff_user"), UpdateOwner: getSupplierUserValue("update_owner"),
UpdateSupplierStaffUser: getAuthSMSValue("update_supplier_staff_user"), CreateStaff: getSupplierUserValue("create_staff"),
UpdateStaff: getSupplierUserValue("update_staff"),
UpdateStatus: getSupplierUserValue("update_status"),
ResetPassword: getSupplierUserValue("reset_password"),
} }