diff --git a/client/supplier_user.go b/client/supplier_user.go index 16eb55a..d2cf98d 100644 --- a/client/supplier_user.go +++ b/client/supplier_user.go @@ -16,6 +16,27 @@ func GetSupplierUser() SupplierUser { return SupplierUser{} } +func (s SupplierUser) LoginUser(p model.LoginUserRequest) (*model.LoginUserResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierUser.LoginUser, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.LoginUserResponse `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) GetListOwner(p model.GetListOwnerRequest) (*model.GetListOwnerResponse, error) { msg, err := natsio.GetServer().Request(subject.SupplierUser.GetListOwner, toBytes(p)) if err != nil { diff --git a/model/supplier_user_request.go b/model/supplier_user_request.go index 6bb81a0..0c5f69a 100644 --- a/model/supplier_user_request.go +++ b/model/supplier_user_request.go @@ -1,5 +1,22 @@ package model +type LoginUserRequest struct { + Email string `json:"email"` + Password string `json:"password"` + DeviceID string `json:"deviceId"` + AppVersion string `json:"appVersion"` + UserAgent string `json:"userAgent"` + Model string `json:"model"` + Manufacturer string `json:"manufacturer"` + IP string `json:"ip"` + Language string `json:"language"` + FCMToken string `json:"FCMToken"` + AuthToken string `json:"authToken"` + OsName string `json:"osName"` + OsVersion string `json:"osVersion"` + IsMobile bool `json:"isMobile"` +} + type GetListOwnerRequest struct { Page int `json:"page"` Limit int `json:"limit"` diff --git a/model/supplier_user_response.go b/model/supplier_user_response.go index 40549bc..5ccd787 100644 --- a/model/supplier_user_response.go +++ b/model/supplier_user_response.go @@ -1,5 +1,13 @@ package model +// LoginUserResponse ... +type LoginUserResponse struct { + ID string `json:"_id"` + Token string `json:"token"` + RequireToChangePassword bool `json:"requireToChangePassword"` + SupplierID string `json:"supplierId"` +} + type GetListOwnerResponse struct { SupplierUsers []SupplierUserBrief `json:"supplierUsers"` Total int64 `json:"total"` diff --git a/subject/supplier_user.go b/subject/supplier_user.go index 2f0e166..d7b21fa 100644 --- a/subject/supplier_user.go +++ b/subject/supplier_user.go @@ -8,6 +8,7 @@ func getSupplierUserValue(val string) string { var SupplierUser = struct { // Users + LoginUser string GetListOwner string CreateOwner string UpdateOwner string @@ -17,6 +18,7 @@ var SupplierUser = struct { ResetPassword string }{ // Users + LoginUser: getSupplierUserValue("login_user"), GetListOwner: getSupplierUserValue("get_list_owner"), CreateOwner: getSupplierUserValue("create_owner"), UpdateOwner: getSupplierUserValue("update_owner"),