33 lines
771 B
Go
33 lines
771 B
Go
|
package supplier
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"errors"
|
||
|
"git.selly.red/Selly-Modules/email/model"
|
||
|
"git.selly.red/Selly-Modules/email/utils"
|
||
|
"git.selly.red/Selly-Modules/natsio"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
SubjectCreateSupplierUser = "create_supplier_user"
|
||
|
)
|
||
|
|
||
|
func CreateSupplierUser(payload model.CreateSupplierUserEncrypt) (requestID string, err error) {
|
||
|
msg, err := natsio.GetServer().Request(SubjectCreateSupplierUser, utils.ToBytes(payload))
|
||
|
if err != nil {
|
||
|
return "", err
|
||
|
}
|
||
|
var res struct {
|
||
|
Data model.CreateSupplierUserResponse `json:"data"`
|
||
|
Error string `json:"error"`
|
||
|
}
|
||
|
|
||
|
if err = json.Unmarshal(msg.Data, &res); err != nil {
|
||
|
return "", err
|
||
|
}
|
||
|
if res.Error != "" {
|
||
|
return "", errors.New(res.Error)
|
||
|
}
|
||
|
return res.Data.RequestID, nil
|
||
|
}
|