Compare commits
42 Commits
Author | SHA1 | Date |
---|---|---|
Nam HQ | c8a9bf235b | |
Nam HQ | 134cc371fb | |
trunglt251292 | e412b71bba | |
trunglt251292 | 1c0db7e67f | |
namhq1989 | b721a615d9 | |
namhq1989 | 36b982916d | |
namhq1989 | 9e59daa977 | |
namhq1989 | 99eb6e229a | |
namhq1989 | a8c573fd9e | |
Nam Huynh | 7efc654cfd | |
Nam Huynh | aa90517c12 | |
Nam Huynh | 890fd036be | |
Nam Huynh | 4ec7fd94e0 | |
namhq1989 | b513302120 | |
namhq1989 | 415039292b | |
namhq1989 | 2f57766b03 | |
namhq1989 | 2d8a669a40 | |
namhq1989 | bd33c3494e | |
namhq1989 | b92c8f4b9a | |
namhq1989 | 5c7283413d | |
namhq1989 | 32b13fbf86 | |
namhq1989 | 7cd5ee674b | |
namhq1989 | 45fa48e1e5 | |
namhq1989 | 239346a435 | |
namhq1989 | 21a288d927 | |
namhq1989 | 92b0b45ec7 | |
namhq1989 | fdcdad6b6d | |
namhq1989 | 7512b669b1 | |
namhq1989 | 685d324788 | |
Nam Huynh | cdbe3b80e2 | |
Nam Huynh | 3356bba50f | |
Nam Huynh | 738d8ec00f | |
Nam Huynh | 11247a81c1 | |
Nam Huynh | 930f4a0020 | |
Nam Huynh | a75d3722f7 | |
Nam Huynh | 756352eb19 | |
Nam Huynh | e2b22676d4 | |
Nam Huynh | 8321743717 | |
Nam Huynh | 175d6f87c7 | |
Nam Huynh | 01c89a341c | |
Nam Huynh | b3519790e2 | |
Nam Huynh | a94138e574 |
|
@ -1,36 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Affiliate ...
|
|
||||||
type Affiliate struct{}
|
|
||||||
|
|
||||||
// GetAffiliate ...
|
|
||||||
func GetAffiliate() Affiliate {
|
|
||||||
return Affiliate{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetTransactions ...
|
|
||||||
func (w Affiliate) GetTransactions(p model.GetTransactionsRequest) (*model.GetTransactionsResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Affiliate.GetTransactions, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.GetTransactionsResponse `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
|
|
||||||
}
|
|
|
@ -1,55 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Bank ...
|
|
||||||
type Bank struct{}
|
|
||||||
|
|
||||||
// GetBank ...
|
|
||||||
func GetBank() Bank {
|
|
||||||
return Bank{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s Bank) GetBankById(bankID string) (*model.BankBrief, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Bank.GetBankById, toBytes(bankID))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.BankBrief `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 Bank) CheckBankAndBranchByID(p model.BankBranchRequest) bool {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Bank.CheckBankAndBranchByID, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return r.Error == ""
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// BankBranch ...
|
|
||||||
type BankBranch struct{}
|
|
||||||
|
|
||||||
// GetBankBranch ...
|
|
||||||
func GetBankBranch() BankBranch {
|
|
||||||
return BankBranch{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s BankBranch) GetBankBranchById(bankBranchID string) (*model.BankBranchBrief, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Bank.GetBankBranchById, toBytes(bankBranchID))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.BankBranchBrief `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
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Campaign ...
|
|
||||||
type Campaign struct{}
|
|
||||||
|
|
||||||
// GetCampaign ...
|
|
||||||
func GetCampaign() Campaign {
|
|
||||||
return Campaign{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCampaignTransaction ...
|
|
||||||
func (c Campaign) GetCampaignTransaction(p model.GetCampaignTransactionsRequest) (*model.ResponseCampaignTransactionAll, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Campaign.GetListCampaignTransactionAdminInfoByIDs, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseCampaignTransactionAll `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCampaignSellerStatistic ....
|
|
||||||
func (c Campaign) GetCampaignSellerStatistic(req model.GetCampaignSellerStatisticBySellerIDs) (*model.ResponseCampaignSellerStatisticList, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Campaign.GetCampaignSellerStatisticBySellerIDs, toBytes(req))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseCampaignSellerStatisticList `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
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package client
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"git.selly.red/Selly-Modules/natsio"
|
|
||||||
"git.selly.red/Selly-Modules/natsio/model"
|
|
||||||
"git.selly.red/Selly-Modules/natsio/subject"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Communication ...
|
|
||||||
type Communication struct{}
|
|
||||||
|
|
||||||
// GetCommunication ...
|
|
||||||
func GetCommunication() Communication {
|
|
||||||
return Communication{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RequestHttp ...
|
|
||||||
func (c Communication) RequestHttp(p model.CommunicationRequestHttp) (r *model.CommunicationHttpResponse, err error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Communication.RequestHTTP, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = json.Unmarshal(msg.Data, &r)
|
|
||||||
return r, err
|
|
||||||
}
|
|
|
@ -1,335 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Location ...
|
|
||||||
type Location struct{}
|
|
||||||
|
|
||||||
// GetLocation ...
|
|
||||||
func GetLocation() Location {
|
|
||||||
return Location{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetLocationByCode ...
|
|
||||||
func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*model.ResponseLocationAddress, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetLocationByCodeFromLocationService, toBytes(payload))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseLocationAddress `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetLocationByWardCode ...
|
|
||||||
func (l Location) GetLocationByWardCode(payload model.RequestCondition) (*model.ResponseLocationAddress, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetLocationByWardCode, toBytes(payload))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseLocationAddress `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetProvincesByCodes ...
|
|
||||||
func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.LocationProvinceResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCodesFromLocationService, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.LocationProvinceResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetDistrictsByCodes ...
|
|
||||||
func (l Location) GetDistrictsByCodes(p model.DistrictRequestPayload) (*model.LocationDistrictResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCodesFromLocationService, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.LocationDistrictResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetWardsByCodes ...
|
|
||||||
func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWardResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCodesFromLocationService, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.LocationWardResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetProvinceByCondition ...
|
|
||||||
func (l Location) GetProvinceByCondition(p model.RequestCondition) (*model.LocationProvinceDetailResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetProvinceByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.LocationProvinceDetailResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetProvincesByCondition ...
|
|
||||||
func (l Location) GetProvincesByCondition(p model.RequestCondition) ([]*model.LocationProvinceDetailResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data []*model.LocationProvinceDetailResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetDistrictByCondition ...
|
|
||||||
func (l Location) GetDistrictByCondition(p model.RequestCondition) (*model.LocationDistrictDetailResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetDistrictByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.LocationDistrictDetailResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetDistrictsByCondition ...
|
|
||||||
func (l Location) GetDistrictsByCondition(p model.RequestCondition) ([]*model.LocationDistrictDetailResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data []*model.LocationDistrictDetailResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetWardByCondition ...
|
|
||||||
func (l Location) GetWardByCondition(p model.RequestCondition) (*model.LocationWardDetailResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetWardByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.LocationWardDetailResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetWardsByCondition ...
|
|
||||||
func (l Location) GetWardsByCondition(p model.RequestCondition) ([]*model.LocationWardDetailResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data []*model.LocationWardDetailResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// CountProvinceByCondition ...
|
|
||||||
func (l Location) CountProvinceByCondition(p model.RequestCondition) (int64, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.CountProvinceByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data int64 `json:"data"`
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return 0, errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return r.Data, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// CountDistrictByCondition ...
|
|
||||||
func (l Location) CountDistrictByCondition(p model.RequestCondition) (int64, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.CountDistrictByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data int64 `json:"data"`
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return 0, errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return r.Data, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// CountWardByCondition ...
|
|
||||||
func (l Location) CountWardByCondition(p model.RequestCondition) (int64, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.CountWardByCondition, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data int64 `json:"data"`
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return 0, errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return r.Data, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DistinctWithField ...
|
|
||||||
func (l Location) DistinctWithField(p model.ProvinceDistinctWithField) ([]interface{}, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.ProvinceDistinctWithField, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data []interface{} `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
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// News ...
|
|
||||||
type News struct{}
|
|
||||||
|
|
||||||
// GetNews ...
|
|
||||||
func GetNews() News {
|
|
||||||
return News{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetProductNoticesByInventory ...
|
|
||||||
func (n News) GetProductNoticesByInventory(p model.GetProductNoticesByInventoryRequest) (*model.GetProductNoticesByInventoryResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.News.GetProductNoticesByInventory, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.GetProductNoticesByInventoryResponse `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
|
|
||||||
}
|
|
140
client/order.go
140
client/order.go
|
@ -1,140 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Order ...
|
|
||||||
type Order struct{}
|
|
||||||
|
|
||||||
// GetOrder ...
|
|
||||||
func GetOrder() Order {
|
|
||||||
return Order{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateORStatus ...
|
|
||||||
func (o Order) UpdateORStatus(p model.OrderUpdateORStatus) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Order.UpdateORStatus, 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// CancelDelivery ...
|
|
||||||
func (o Order) CancelDelivery(p model.OrderCancelDelivery) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Order.CancelDelivery, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var r model.CommonResponseData
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ChangeDeliveryStatus ...
|
|
||||||
func (o Order) ChangeDeliveryStatus(p model.OrderChangeDeliveryStatus) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Order.ChangeDeliveryStatus, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var r model.CommonResponseData
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateLogisticInfoFailed ...
|
|
||||||
func (o Order) UpdateLogisticInfoFailed(p model.OrderUpdateLogisticInfoFailed) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Order.UpdateLogisticInfoFailed, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var r model.CommonResponseData
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ORNotUpdateStatus ...
|
|
||||||
func (o Order) ORNotUpdateStatus(p model.OrderORsNotUpdateStatus) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Order.ORNotUpdateStatus, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var r model.CommonResponseData
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetSupplierOrders ...
|
|
||||||
func (o Order) GetSupplierOrders(p model.OrderSupplierQuery) (*model.SupplierOrderList, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Order.GetSupplierOrders, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var (
|
|
||||||
r struct {
|
|
||||||
Data model.SupplierOrderList `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUserTotalWarningOrder ...
|
|
||||||
func (o Order) GetUserTotalWarningOrder(p model.OrderGetTotalWarningPayload) (*model.OrderGetTotalWarningRes, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Order.GetUserTotalWarningOrders, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data model.OrderGetTotalWarningRes `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
|
|
||||||
}
|
|
|
@ -1,86 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Product ...
|
|
||||||
type Product struct{}
|
|
||||||
|
|
||||||
// GetProduct ...
|
|
||||||
func GetProduct() Product {
|
|
||||||
return Product{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c Product) ApplyRequest(p model.ProductApplyRequestPayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Product.ApplyRequest, 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 (c Product) CreateRequestSteps(p model.ProductCreateStepsPayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Product.CreateRequestStep, 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 (c Product) ProcessApplyRequest(p model.ProductApplyRequestPayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Product.ProcessApplyRequest, 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 (c Product) RequestChangeStatus(p model.ProductRequestChangeStatus) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Product.RequestChangeStatus, 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
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Queue ...
|
|
||||||
type Queue struct{}
|
|
||||||
|
|
||||||
// GetQueue ...
|
|
||||||
func GetQueue() Queue {
|
|
||||||
return Queue{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c Queue) ScheduleTask(p model.QueueScheduleTaskRequest) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Queue.ScheduleTask, 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
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Segment ...
|
|
||||||
type Segment struct{}
|
|
||||||
|
|
||||||
// GetSegment ...
|
|
||||||
func GetSegment() Segment {
|
|
||||||
return Segment{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListSegmentInfoByIds ...
|
|
||||||
func (s Segment) GetListSegmentInfoByIds(p model.GetListSegmentRequest) (*model.ResponseListSegmentInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Segment.GetListSegmentInfo, toBytes(p))
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseListSegmentInfo `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
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Seller ...
|
|
||||||
type Seller struct{}
|
|
||||||
|
|
||||||
// GetSeller ...
|
|
||||||
func GetSeller() Seller {
|
|
||||||
return Seller{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetSellerInfoByID ...
|
|
||||||
func (s Seller) GetSellerInfoByID(p model.GetSellerByIDRequest) (*model.ResponseSellerInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Seller.GetSellerInfoByID, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseSellerInfo `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListSellerInfoByIDs ...
|
|
||||||
func (s Seller) GetListSellerInfoByIDs(p model.GetListSellerByIDsRequest) (*model.ResponseListSellerInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Seller.GetListSellerInfoByIDs, toBytes(p))
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseListSellerInfo `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListSellerInfoSupportChatByIDs ...
|
|
||||||
func (s Seller) GetListSellerInfoSupportChatByIDs(p model.GetListSellerSupportChatByIDsRequest) (*model.ResponseListSellerInfoSupportChat, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.SupportChat.GetListSellerInfoSupportChatByIDs, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseListSellerInfoSupportChat `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
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SocialPost ...
|
|
||||||
type SocialPost struct{}
|
|
||||||
|
|
||||||
// GetSocialPost ...
|
|
||||||
func GetSocialPost() SocialPost {
|
|
||||||
return SocialPost{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListSocialPostAppInfoByIDs ...
|
|
||||||
func (s SocialPost) GetListSocialPostAppInfoByIDs(p model.GetListSocialPostAppByIDsRequest) (*model.ResponseListSocialPostAppInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.SocialPost.GetListSocialPostAppInfoByIDs, toBytes(p))
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseListSocialPostAppInfo `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetBriefDetailSocialPostAdminByIDsRequest ...
|
|
||||||
func (s SocialPost) GetBriefDetailSocialPostAdminByIDsRequest(p model.GetBriefInfoSocialPostAdminByIDsRequest) (*model.ResponseListSocialPostAdminInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.SocialPost.GetBriefInfoSocialPostAdminByIDs, toBytes(p))
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseListSocialPostAdminInfo `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
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package client
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.selly.red/Selly-Modules/natsio"
|
|
||||||
"git.selly.red/Selly-Modules/natsio/model"
|
|
||||||
"git.selly.red/Selly-Modules/natsio/subject"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Socket ...
|
|
||||||
type Socket struct{}
|
|
||||||
|
|
||||||
// GetSocket ...
|
|
||||||
func GetSocket() Socket {
|
|
||||||
return Socket{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// EmitSocketEventDataReward ...
|
|
||||||
func (s Socket) EmitSocketEventDataReward(p model.PayloadEmitSocketEvent) error {
|
|
||||||
_, err := natsio.GetServer().Request(subject.Socket.EmitEventReward, toBytes(p))
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// EmitEventToUser ...
|
|
||||||
func (s Socket) EmitEventToUser(p model.PayloadEmitSocketEvent) error {
|
|
||||||
_, err := natsio.GetServer().Request(subject.Socket.EmitEventToUser, toBytes(p))
|
|
||||||
return err
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Staff ...
|
|
||||||
type Staff struct{}
|
|
||||||
|
|
||||||
func GetStaff() Staff {
|
|
||||||
return Staff{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListStaffInfoByIds ...
|
|
||||||
func (s Staff) GetListStaffInfoByIds(p model.GetListStaffRequest) (*model.ResponseListStaffInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Staff.GetListStaffInfo, toBytes(p))
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseListStaffInfo `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
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,202 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Supplier ...
|
|
||||||
type Supplier struct{}
|
|
||||||
|
|
||||||
// GetSupplier ...
|
|
||||||
func GetSupplier() Supplier {
|
|
||||||
return Supplier{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s Supplier) GetListSupplierInfo(p model.GetSupplierRequest) ([]*model.ResponseSupplierInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Supplier.GetListSupplierInfo, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data []*model.ResponseSupplierInfo `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetDetailSupplierInfo ...
|
|
||||||
func (s Supplier) GetDetailSupplierInfo(p model.GetDetailSupplierRequest) (*model.ResponseSupplierInfo, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Supplier.GetDetailSupplierInfo, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseSupplierInfo `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 Supplier) GetSupplierContractBySupplierID(p model.GetSupplierContractRequest) (*model.ResponseSupplierContract, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Supplier.GetSupplierContractBySupplierID, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.ResponseSupplierContract `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 Supplier) FindAll(supplierID model.SupplierRequestPayload) (*model.SupplierAll, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Supplier.FindAll, toBytes(supplierID))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.SupplierAll `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 Supplier) FindAllOld(req model.SupplierFindAllReq) (*model.SupplierAll, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Supplier.FindAllOld, toBytes(req))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.SupplierAll `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 Supplier) GetBankInfoByID(supplierID model.SupplierRequestPayload) (*model.SupplierAll, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Supplier.FindAll, toBytes(supplierID))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.SupplierAll `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 Supplier) Count(req model.SupplierCountReq) (*model.SupplierCountRes, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Supplier.Count, toBytes(req))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.SupplierCountRes `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateWarehouseIntoServiceSupplier ...
|
|
||||||
func (s Supplier) CreateWarehouseIntoServiceSupplier(p model.CreateSupplierWarehousePayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.CreateWarehouseIntoServiceSupplier, 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateWarehouseIntoServiceSupplier ...
|
|
||||||
func (s Supplier) UpdateWarehouseIntoServiceSupplier(p model.UpdateSupplierWarehousePayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateWarehouseIntoServiceSupplier, 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
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
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
|
|
||||||
}
|
|
|
@ -1,160 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SupplierUser ...
|
|
||||||
type SupplierUser struct{}
|
|
||||||
|
|
||||||
// GetSupplierUser ...
|
|
||||||
func GetSupplierUser() SupplierUser {
|
|
||||||
return SupplierUser{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s SupplierUser) CreateSupplierOwnerUsers(p model.CreateOwnerRequest) (*model.CreateOwnerResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateOwner, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.CreateOwnerResponse `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) UpdateSupplierOwnerUsers(p model.UpdateOwnerRequest) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateOwner, 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.CreateStaffRequest) (*model.CreateStaffResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateStaff, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Data *model.CreateStaffResponse `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.UpdateStaffRequest) 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) 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// CheckTokenSupplierUser ...
|
|
||||||
func (s SupplierUser) CheckTokenSupplierUser(p model.CheckTokenSupplierUserPayload) (*model.ResponseCheckTokenSupplierUser, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.SupplierUser.CheckTokenSupplierUser, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Error string `json:"error"`
|
|
||||||
Data *model.ResponseCheckTokenSupplierUser `json:"data"`
|
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
package client
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"go.mongodb.org/mongo-driver/bson"
|
|
||||||
"log"
|
|
||||||
)
|
|
||||||
|
|
||||||
func toBytes(data interface{}) []byte {
|
|
||||||
b, err := json.Marshal(data)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("natsio/client.toBytes: marshal_json %v", err)
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// bsonToBytes ...
|
|
||||||
func bsonToBytes(data interface{}) []byte {
|
|
||||||
b, _ := bson.Marshal(data)
|
|
||||||
return b
|
|
||||||
}
|
|
|
@ -1,243 +0,0 @@
|
||||||
package client
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"git.selly.red/Selly-Modules/natsio"
|
|
||||||
"git.selly.red/Selly-Modules/natsio/model"
|
|
||||||
"git.selly.red/Selly-Modules/natsio/subject"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Warehouse ...
|
|
||||||
type Warehouse struct{}
|
|
||||||
|
|
||||||
// GetWarehouse ...
|
|
||||||
func GetWarehouse() Warehouse {
|
|
||||||
return Warehouse{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateIsClosedSupplier ...
|
|
||||||
func (w Warehouse) UpdateIsClosedSupplier(p model.UpdateSupplierIsClosedRequest) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateIsClosedSupplier, 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// AfterCreateWarehouse ...
|
|
||||||
func (w Warehouse) AfterCreateWarehouse(p model.WarehouseNatsResponse) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.AfterCreateWarehouse, 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// AfterUpdateWarehouse ...
|
|
||||||
func (w Warehouse) AfterUpdateWarehouse(p model.WarehouseNatsResponse) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.AfterUpdateWarehouse, 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateOutboundRequest ...
|
|
||||||
func (w Warehouse) CreateOutboundRequest(p model.OutboundRequestPayload) (*model.OutboundRequestResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.CreateOutboundRequest, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.OutboundRequestResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateOutboundRequestLogisticInfo ...
|
|
||||||
func (w Warehouse) UpdateOutboundRequestLogisticInfo(p model.UpdateOutboundRequestLogisticInfoPayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateOutboundRequestLogistic, 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// CancelOutboundRequest ...
|
|
||||||
func (w Warehouse) CancelOutboundRequest(p model.CancelOutboundRequest) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.CancelOutboundRequest, 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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetConfigByWarehouseID ...
|
|
||||||
func (w Warehouse) GetConfigByWarehouseID(warehouseID string) (*model.WarehouseConfiguration, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.GetConfiguration, toBytes(warehouseID))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.WarehouseConfiguration `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListConfig ...
|
|
||||||
func (w Warehouse) GetListConfig(req model.GetListWarehouseConfigReq) ([]*model.WarehouseConfiguration, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.GetListWarehouseConfig, toBytes(req))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data []*model.WarehouseConfiguration `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetWarehouses ...
|
|
||||||
func (w Warehouse) GetWarehouses(p model.GetWarehousesRequest) (*model.GetWarehousesResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.GetWarehouses, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.GetWarehousesResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateORDeliveryStatus ...
|
|
||||||
func (w Warehouse) UpdateORDeliveryStatus(p model.WarehouseORUpdateDeliveryStatus) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateORDeliveryStatus, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return fmt.Errorf("nats: update_or_delivery_status %v", err)
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateStatusWarehousePendingInactive ...
|
|
||||||
func (w Warehouse) UpdateStatusWarehousePendingInactive(p model.UpdateStatusWarehousePendingInactiveRequest) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateStatusWarehousePendingInactive, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return fmt.Errorf("nats: update_status_warehouse_pending_inactive %v", err)
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateIsSellyMall ...
|
|
||||||
func (w Warehouse) UpdateIsSellyMall(p model.UpdateIsSellyMallRequest) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateIsSellyMall, toBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var r struct {
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return fmt.Errorf("nats: update_is_selly_mall %v", err)
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -1,122 +0,0 @@
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DistinctWithField ...
|
|
||||||
func (w Warehouse) DistinctWithField(p model.DistinctWithField) ([]interface{}, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.Distinct, bsonToBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data []interface{} `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindOneByCondition ...
|
|
||||||
func (w Warehouse) FindOneByCondition(p model.FindOneCondition) (*model.WarehouseNatsResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.FindOne, bsonToBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data *model.WarehouseNatsResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// CountByCondition ...
|
|
||||||
func (w Warehouse) CountByCondition(p model.FindWithCondition) (int64, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.Count, bsonToBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data int64 `json:"data"`
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
if err = json.Unmarshal(msg.Data, &r); err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
if r.Error != "" {
|
|
||||||
return 0, errors.New(r.Error)
|
|
||||||
}
|
|
||||||
return r.Data, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// FindByCondition ...
|
|
||||||
func (w Warehouse) FindByCondition(p model.FindWithCondition) ([]*model.WarehouseNatsResponse, error) {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.FindByCondition, bsonToBytes(p))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var r struct {
|
|
||||||
Data []*model.WarehouseNatsResponse `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
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateWarehouseConfig ...
|
|
||||||
func (w Warehouse) UpdateWarehouseConfig(p model.UpdatePayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateWarehouseConfig, bsonToBytes(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
|
|
||||||
}
|
|
||||||
|
|
||||||
// BulkWriteWarehouseConfig ...
|
|
||||||
func (w Warehouse) BulkWriteWarehouseConfig(p model.UpdatePayload) error {
|
|
||||||
msg, err := natsio.GetServer().Request(subject.Warehouse.BulkWriteWarehouseConfig, bsonToBytes(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
|
|
||||||
}
|
|
23
config.go
23
config.go
|
@ -1,6 +1,9 @@
|
||||||
package natsio
|
package natsio
|
||||||
|
|
||||||
import "time"
|
import (
|
||||||
|
"errors"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
// Config ...
|
// Config ...
|
||||||
type Config struct {
|
type Config struct {
|
||||||
|
@ -18,6 +21,24 @@ type Config struct {
|
||||||
|
|
||||||
// RequestTimeout
|
// RequestTimeout
|
||||||
RequestTimeout time.Duration
|
RequestTimeout time.Duration
|
||||||
|
|
||||||
|
// Stream name
|
||||||
|
StreamName string
|
||||||
|
|
||||||
|
// Debug
|
||||||
|
Debug bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c Config) validate() error {
|
||||||
|
if c.URL == "" {
|
||||||
|
return errors.New("connect URL is required")
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.StreamName == "" {
|
||||||
|
return errors.New("stream name is required")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// TLSConfig ...
|
// TLSConfig ...
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
package natsio
|
||||||
|
|
||||||
|
var AllStreams = struct {
|
||||||
|
Selly string
|
||||||
|
User string
|
||||||
|
HelpCenter string
|
||||||
|
Order string
|
||||||
|
Withdrawal string
|
||||||
|
Jobs string
|
||||||
|
Auth string
|
||||||
|
Chat string
|
||||||
|
Product string
|
||||||
|
Supplier string
|
||||||
|
Warehouse string
|
||||||
|
Campaign string
|
||||||
|
Upload string
|
||||||
|
}{
|
||||||
|
Selly: "selly",
|
||||||
|
User: "user",
|
||||||
|
HelpCenter: "help_center",
|
||||||
|
Order: "order",
|
||||||
|
Withdrawal: "withdrawal",
|
||||||
|
Jobs: "jobs",
|
||||||
|
Auth: "auth",
|
||||||
|
Chat: "chat",
|
||||||
|
Product: "product",
|
||||||
|
Supplier: "supplier",
|
||||||
|
Warehouse: "warehouse",
|
||||||
|
Campaign: "campaign",
|
||||||
|
Upload: "upload",
|
||||||
|
}
|
||||||
|
|
||||||
|
var AllServers = struct {
|
||||||
|
Shared string
|
||||||
|
App string
|
||||||
|
Admin string
|
||||||
|
SMS string
|
||||||
|
Chat string
|
||||||
|
}{
|
||||||
|
Shared: "shared",
|
||||||
|
App: "app",
|
||||||
|
Admin: "admin",
|
||||||
|
SMS: "sms",
|
||||||
|
Chat: "chat",
|
||||||
|
}
|
23
go.mod
23
go.mod
|
@ -1,12 +1,23 @@
|
||||||
module git.selly.red/Selly-Modules/natsio
|
module git.selly.red/Selly-Modules/natsio/v3
|
||||||
|
|
||||||
go 1.16
|
go 1.19
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/json-iterator/go v1.1.12
|
||||||
|
github.com/nats-io/nats.go v1.20.0
|
||||||
|
github.com/thoas/go-funk v0.9.2
|
||||||
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
github.com/golang/protobuf v1.5.2 // indirect
|
||||||
|
github.com/klauspost/compress v1.13.6 // indirect
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
github.com/nats-io/nats-server/v2 v2.6.1 // indirect
|
github.com/nats-io/nats-server/v2 v2.6.1 // indirect
|
||||||
github.com/nats-io/nats.go v1.13.0
|
github.com/nats-io/nkeys v0.3.0 // indirect
|
||||||
github.com/thoas/go-funk v0.9.1
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
go.mongodb.org/mongo-driver v1.10.1
|
github.com/stretchr/testify v1.6.1 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
golang.org/x/crypto v0.3.0 // indirect
|
||||||
|
google.golang.org/protobuf v1.28.0 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
59
go.sum
59
go.sum
|
@ -10,25 +10,24 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
|
||||||
github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
|
|
||||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
|
github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
|
||||||
github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
|
github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
|
||||||
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
|
||||||
github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
|
github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
|
||||||
github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
|
github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
|
||||||
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
github.com/nats-io/jwt v1.2.2 h1:w3GMTO969dFg+UOKTmmyuu7IGdusK+7Ytlt//OYH/uU=
|
github.com/nats-io/jwt v1.2.2 h1:w3GMTO969dFg+UOKTmmyuu7IGdusK+7Ytlt//OYH/uU=
|
||||||
github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
|
github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
|
||||||
github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI=
|
github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI=
|
||||||
|
@ -36,63 +35,42 @@ github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SE
|
||||||
github.com/nats-io/nats-server/v2 v2.6.1 h1:cJy+ia7/4EaJL+ZYDmIy2rD1mDWTfckhtPBU0GYo8xM=
|
github.com/nats-io/nats-server/v2 v2.6.1 h1:cJy+ia7/4EaJL+ZYDmIy2rD1mDWTfckhtPBU0GYo8xM=
|
||||||
github.com/nats-io/nats-server/v2 v2.6.1/go.mod h1:Az91TbZiV7K4a6k/4v6YYdOKEoxCXj+iqhHVf/MlrKo=
|
github.com/nats-io/nats-server/v2 v2.6.1/go.mod h1:Az91TbZiV7K4a6k/4v6YYdOKEoxCXj+iqhHVf/MlrKo=
|
||||||
github.com/nats-io/nats.go v1.12.3/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
github.com/nats-io/nats.go v1.12.3/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
||||||
github.com/nats-io/nats.go v1.13.0 h1:LvYqRB5epIzZWQp6lmeltOOZNLqCvm4b+qfvzZO03HE=
|
github.com/nats-io/nats.go v1.20.0 h1:T8JJnQfVSdh1CzGiwAOv5hEobYCBho/0EupGznYw0oM=
|
||||||
github.com/nats-io/nats.go v1.13.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
github.com/nats-io/nats.go v1.20.0/go.mod h1:tLqubohF7t4z3du1QDPYJIQQyhb4wl6DhjxEajSI7UA=
|
||||||
github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s=
|
github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s=
|
||||||
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
|
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
|
||||||
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
|
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
|
||||||
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M=
|
github.com/thoas/go-funk v0.9.2 h1:oKlNYv0AY5nyf9g+/GhMgS/UO2ces0QRdPKwkhY3VCk=
|
||||||
github.com/thoas/go-funk v0.9.1/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
|
github.com/thoas/go-funk v0.9.2/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
|
||||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
|
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
|
||||||
github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
|
|
||||||
github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
|
|
||||||
github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=
|
|
||||||
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
|
|
||||||
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
|
|
||||||
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
|
|
||||||
go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4=
|
|
||||||
go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
|
golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A=
|
||||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
|
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
|
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|
||||||
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 h1:NusfzzA6yGQ+ua51ck7E3omNUX/JuqbFSaRGqU8CcLI=
|
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 h1:NusfzzA6yGQ+ua51ck7E3omNUX/JuqbFSaRGqU8CcLI=
|
||||||
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
|
@ -102,10 +80,9 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi
|
||||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
|
||||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
package natsio
|
|
||||||
|
|
||||||
// StreamNameSelly ...
|
|
||||||
const StreamNameSelly = "selly"
|
|
|
@ -8,30 +8,27 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetConsumerInfo ...
|
// GetConsumerInfo ...
|
||||||
func (js JetStream) GetConsumerInfo(stream, name string) (*nats.ConsumerInfo, error) {
|
func (js JetStream) GetConsumerInfo(consumerName string) (*nats.ConsumerInfo, error) {
|
||||||
return js.instance.ConsumerInfo(stream, name)
|
return js.instance.ConsumerInfo(js.streamName, consumerName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddConsumer ...
|
// AddConsumer ...
|
||||||
func (js JetStream) AddConsumer(stream, subject, name string) error {
|
func (js JetStream) AddConsumer(consumerName, filterSubject string) error {
|
||||||
// Get consumer first, return if existed
|
// get consumer first, return if existed
|
||||||
consumer, err := js.GetConsumerInfo(stream, name)
|
consumer, _ := js.GetConsumerInfo(consumerName)
|
||||||
if consumer != nil {
|
if consumer != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate channel name
|
// add
|
||||||
channel := combineStreamAndSubjectName(stream, subject)
|
_, err := js.instance.AddConsumer(js.streamName, &nats.ConsumerConfig{
|
||||||
|
Durable: consumerName,
|
||||||
// Add
|
|
||||||
_, err = js.instance.AddConsumer(stream, &nats.ConsumerConfig{
|
|
||||||
Durable: name,
|
|
||||||
AckPolicy: nats.AckExplicitPolicy,
|
AckPolicy: nats.AckExplicitPolicy,
|
||||||
FilterSubject: channel,
|
FilterSubject: filterSubject,
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - add consumer %s for stream #%s error: %s", name, stream, err.Error())
|
msg := fmt.Sprintf("[natsio.JetStream] add consumer %s to stream #%s error: %s", consumerName, js.streamName, err.Error())
|
||||||
return errors.New(msg)
|
return errors.New(msg)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -3,63 +3,57 @@ package natsio
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/nats-io/nats.go"
|
"github.com/nats-io/nats.go"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Publish ...
|
// Publish ...
|
||||||
func (js JetStream) Publish(stream, subject string, payload []byte) error {
|
func (js JetStream) Publish(subject string, payload []byte) error {
|
||||||
channel := combineStreamAndSubjectName(stream, subject)
|
_, err := js.instance.PublishAsync(subject, payload)
|
||||||
|
|
||||||
_, err := js.instance.PublishAsync(channel, payload)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - publish message to subject #%s error: %s", channel, err.Error())
|
msg := fmt.Sprintf("[natsio.JetStream] publish message to subject #%s error: %s", subject, err.Error())
|
||||||
return errors.New(msg)
|
return errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if js.cfg.Debug {
|
||||||
|
fmt.Printf("[natsio.JetStream] published a message to subject #%s \n", subject)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subscribe ...
|
// Subscribe ...
|
||||||
func (js JetStream) Subscribe(stream, subject string, cb nats.MsgHandler) (*nats.Subscription, error) {
|
func (js JetStream) Subscribe(subject string, cb nats.MsgHandler) (*nats.Subscription, error) {
|
||||||
channel := combineStreamAndSubjectName(stream, subject)
|
sub, err := js.instance.Subscribe(subject, cb)
|
||||||
|
|
||||||
sub, err := js.instance.Subscribe(channel, cb)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - subscribe subject %s error: %s", channel, err.Error())
|
msg := fmt.Sprintf("[natsio.JetStream] subscribe subject %s error: %s", subject, err.Error())
|
||||||
return nil, errors.New(msg)
|
return nil, errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if js.cfg.Debug {
|
||||||
|
fmt.Printf("[natsio.JetStream] subscribe to subject #%s \n", subject)
|
||||||
|
}
|
||||||
|
|
||||||
return sub, nil
|
return sub, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// PullSubscribe ...
|
func (js JetStream) PullSubscribe(subject, consumer string) (*nats.Subscription, error) {
|
||||||
//
|
// check if consumer existed
|
||||||
// Example:
|
con, err := js.GetConsumerInfo(consumer)
|
||||||
//
|
|
||||||
// js := natsio.GetJetStream()
|
|
||||||
//
|
|
||||||
// sub, err := js.PullSubscribe("A_SUBJECT", "A_SUBJECT", "A_CONSUMER")
|
|
||||||
//
|
|
||||||
// for {
|
|
||||||
// messages, err := sub.Fetch(10)
|
|
||||||
// // process each messages
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
func (js JetStream) PullSubscribe(stream, subject, consumer string) (*nats.Subscription, error) {
|
|
||||||
channel := combineStreamAndSubjectName(stream, subject)
|
|
||||||
|
|
||||||
// Check if consumer existed
|
|
||||||
con, err := js.GetConsumerInfo(stream, consumer)
|
|
||||||
if con == nil || err != nil {
|
if con == nil || err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - pull subscribe consumer %s not existed in stream %s", consumer, stream)
|
msg := fmt.Sprintf("[natsio.JetStream] pull subscribe consumer %s not existed in stream %s", consumer, js.streamName)
|
||||||
return nil, errors.New(msg)
|
return nil, errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pull
|
// pull
|
||||||
sub, err := js.instance.PullSubscribe(channel, consumer)
|
sub, err := js.instance.PullSubscribe(subject, consumer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - pull subscribe subject #%s - consumer #%s error: %s", channel, consumer, err.Error())
|
msg := fmt.Sprintf("[natsio.JetStream] pull subscribe subject #%s - consumer #%s error: %s", subject, consumer, err.Error())
|
||||||
return nil, errors.New(msg)
|
return nil, errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if js.cfg.Debug {
|
||||||
|
fmt.Printf("[natsio.JetStream] pull subscribe to subject #%s \n", subject)
|
||||||
|
}
|
||||||
|
|
||||||
return sub, nil
|
return sub, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,13 +8,16 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// QueueSubscribe ...
|
// QueueSubscribe ...
|
||||||
func (js JetStream) QueueSubscribe(stream, subject, queueName string, cb nats.MsgHandler) error {
|
func (js JetStream) QueueSubscribe(subject, queueName string, cb nats.MsgHandler) error {
|
||||||
channel := combineStreamAndSubjectName(stream, subject)
|
_, err := js.instance.QueueSubscribe(subject, queueName, cb)
|
||||||
|
|
||||||
_, err := js.instance.QueueSubscribe(channel, queueName, cb)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - queue subscribe with subject #%s error: %s", channel, err.Error())
|
msg := fmt.Sprintf("[natsio.JetStream] queue subscribe with subject #%s error: %s", subject, err.Error())
|
||||||
return errors.New(msg)
|
return errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if js.cfg.Debug {
|
||||||
|
fmt.Printf("[natsio.JetStream] queue subscribe to subject #%s \n", subject)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,56 +21,52 @@ func generateStreamConfig(stream string, subjects []string) *nats.StreamConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetStreamInfo ...
|
// GetStreamInfo ...
|
||||||
func (js JetStream) GetStreamInfo(name string) (*nats.StreamInfo, error) {
|
func (js JetStream) GetStreamInfo() (*nats.StreamInfo, error) {
|
||||||
return js.instance.StreamInfo(name)
|
return js.instance.StreamInfo(js.streamName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddStream add new stream, with default config
|
// addStream add new stream, with default config
|
||||||
// Due to subject must have a unique name, subject name will be combined with stream name
|
func (js JetStream) addStream() {
|
||||||
// E.g: stream name is "DEMO", subject name is "Subject-1", so final name in NATS will be: DEMO.Subject-1
|
// get info about the stream
|
||||||
func (js JetStream) AddStream(name string, subjects []string) error {
|
stream, _ := js.GetStreamInfo()
|
||||||
// Get info about the stream
|
|
||||||
stream, _ := js.GetStreamInfo(name)
|
|
||||||
|
|
||||||
// If stream not found, create new
|
// if stream not found, create new
|
||||||
if stream == nil {
|
if stream == nil {
|
||||||
subjectNames := generateSubjectNames(name, subjects)
|
_, err := js.instance.AddStream(generateStreamConfig(js.streamName, []string{}))
|
||||||
_, err := js.instance.AddStream(generateStreamConfig(name, subjectNames))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - add stream error: %s", err.Error())
|
fmt.Printf("[natsio.JetStream] add stream %s error: %s \n", js.streamName, err.Error())
|
||||||
return errors.New(msg)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteStream ...
|
// DeleteStream ...
|
||||||
func (js JetStream) DeleteStream(name string) error {
|
func (js JetStream) DeleteStream() error {
|
||||||
if err := js.instance.DeleteStream(name); err != nil {
|
if err := js.instance.DeleteStream(js.streamName); err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - delete stream error: %s", err.Error())
|
msg := fmt.Sprintf("[natsio.JetStream] delete stream %s error: %s", js.streamName, err.Error())
|
||||||
return errors.New(msg)
|
return errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddStreamSubjects ...
|
// AddSubjects ...
|
||||||
func (js JetStream) AddStreamSubjects(name string, subjects []string) error {
|
func (js JetStream) AddSubjects(subjects []string) error {
|
||||||
// Get info about the stream
|
// get stream info
|
||||||
stream, _ := js.GetStreamInfo(name)
|
stream, _ := js.GetStreamInfo()
|
||||||
if stream == nil {
|
if stream == nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - error when adding stream %s subjects: stream not found", name)
|
msg := fmt.Sprintf("[natsio.JetStream] error when adding stream #%s subjects: stream not found", js.streamName)
|
||||||
return errors.New(msg)
|
return errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merge current and new subjects
|
// merge current and new subjects
|
||||||
subjectNames := generateSubjectNames(name, subjects)
|
newSubjects := mergeAndUniqueArrayStrings(subjects, stream.Config.Subjects)
|
||||||
newSubjects := mergeAndUniqueArrayStrings(subjectNames, stream.Config.Subjects)
|
|
||||||
|
|
||||||
_, err := js.instance.UpdateStream(generateStreamConfig(name, newSubjects))
|
// update
|
||||||
|
_, err := js.instance.UpdateStream(generateStreamConfig(js.streamName, newSubjects))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS JETSTREAM] - add stream error: %s", err.Error())
|
msg := fmt.Sprintf("[natsio.JetStream] add subject to stream #%s error: %s", js.streamName, err.Error())
|
||||||
return errors.New(msg)
|
return errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
package jsconsumer
|
|
||||||
|
|
||||||
// Selly ...
|
|
||||||
var Selly = struct {
|
|
||||||
PushNotification string
|
|
||||||
UpdateSellerAffiliateStatistic string
|
|
||||||
CheckAnDInsertCashflowBySeller string
|
|
||||||
SubscriberTopic string
|
|
||||||
UpdateSellerSavingCampaignStatistic string
|
|
||||||
GenerateVoucherPromotion string
|
|
||||||
}{
|
|
||||||
PushNotification: "PULL_PUSH_NOTIFICATION",
|
|
||||||
UpdateSellerAffiliateStatistic: "PULL_UPDATE_SELLER_AFFILIATE_STATISTIC",
|
|
||||||
CheckAnDInsertCashflowBySeller: "PULL_CHECK_AND_INSERT_CASHFLOW_BY_SELLER",
|
|
||||||
SubscriberTopic: "PULL_SUBSCRIBER_TOPIC",
|
|
||||||
UpdateSellerSavingCampaignStatistic: "PULL_UPDATE_SELLER_SAVING_CAMPAIGN_STATISTIC",
|
|
||||||
GenerateVoucherPromotion: "PULL_GENERATE_VOUCHER_PROMOTION",
|
|
||||||
}
|
|
|
@ -1,110 +0,0 @@
|
||||||
package jsmodel
|
|
||||||
|
|
||||||
import "go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
|
|
||||||
// PushNotification ...
|
|
||||||
type PushNotification struct {
|
|
||||||
User string `json:"user"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
TargetID string `json:"targetId"`
|
|
||||||
IsFromAdmin bool `json:"isFromAdmin"`
|
|
||||||
Category string `json:"category"`
|
|
||||||
Options NotificationOptions `json:"options"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotificationOptions ...
|
|
||||||
type NotificationOptions struct {
|
|
||||||
Title string `json:"title"`
|
|
||||||
Content string `json:"content"`
|
|
||||||
CampaignID string `json:"campaignId,omitempty"`
|
|
||||||
SellerSavingCampaignID string `json:"sellerSavingCampaignId,omitempty"`
|
|
||||||
SellerSavingCampaignStatus string `json:"sellerSavingCampaignStatus,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// PayloadUpdateSellerAffiliateStatistic ...
|
|
||||||
type PayloadUpdateSellerAffiliateStatistic struct {
|
|
||||||
SellerID string `json:"sellerId"`
|
|
||||||
Statistic SellerAffiliateStatistic `json:"statistic"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SellerAffiliateStatistic ...
|
|
||||||
type SellerAffiliateStatistic struct {
|
|
||||||
TransactionTotal int `json:"transactionTotal"`
|
|
||||||
TransactionCashback int `json:"transactionCashback"`
|
|
||||||
TransactionPending int `json:"transactionPending"`
|
|
||||||
TransactionApproved int `json:"transactionApproved"`
|
|
||||||
TransactionRejected int `json:"transactionRejected"`
|
|
||||||
CommissionTransactionTotal float64 `json:"commissionTransactionTotal"`
|
|
||||||
CommissionTransactionCashback float64 `json:"commissionTransactionCashback"`
|
|
||||||
CommissionTransactionApproved float64 `json:"commissionTransactionApproved"`
|
|
||||||
CommissionTransactionPending float64 `json:"commissionTransactionPending"`
|
|
||||||
CommissionTransactionRejected float64 `json:"commissionTransactionRejected"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// PayloadCashflowsBySeller ...
|
|
||||||
type PayloadCashflowsBySeller struct {
|
|
||||||
SellerID string `json:"sellerId"`
|
|
||||||
List []CashflowSeller `json:"list"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CashflowSeller ...
|
|
||||||
type CashflowSeller struct {
|
|
||||||
Value float64 `json:"value"`
|
|
||||||
Action string `json:"action"`
|
|
||||||
Category string `json:"category"`
|
|
||||||
TargetID string `json:"targetId"`
|
|
||||||
TargetType string `json:"targetType"`
|
|
||||||
Options *CashFlowOptions `json:"options"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CashFlowOptions ...
|
|
||||||
type CashFlowOptions struct {
|
|
||||||
AffiliateTransactionCode string `json:"affiliateTransactionCode,omitempty"`
|
|
||||||
AffiliateCampaignID string `json:"affiliateCampaignId,omitempty"`
|
|
||||||
AffiliateCampaignName string `json:"affiliateCampaignName,omitempty"`
|
|
||||||
|
|
||||||
// Campaign
|
|
||||||
CampaignID string `json:"campaignId,omitempty"`
|
|
||||||
CampaignName string `json:"campaignName,omitempty"`
|
|
||||||
|
|
||||||
// SavingCampaign
|
|
||||||
SavingCampaignID string `json:"savingCampaignId,omitempty"`
|
|
||||||
SavingCampaignName string `json:"savingCampaignName,omitempty"`
|
|
||||||
|
|
||||||
SavingCampaignItemID string `json:"savingCampaignItemId,omitempty"`
|
|
||||||
SavingCampaignItemName string `json:"savingCampaignItemName,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// PayloadUpdateSellerSavingCampaignStatistic ...
|
|
||||||
type PayloadUpdateSellerSavingCampaignStatistic struct {
|
|
||||||
SellerID string `json:"sellerId"`
|
|
||||||
Statistic SellerSavingCampaignStatistic `json:"statistic"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SellerSavingCampaignStatistic ...
|
|
||||||
type SellerSavingCampaignStatistic struct {
|
|
||||||
SavingCampaignCashPending float64 `json:"savingCampaignCashPending"`
|
|
||||||
SavingCampaignCashCompleted float64 `json:"savingCampaignCashCompleted"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GenerateVoucherPromotion ...
|
|
||||||
type GenerateVoucherPromotion struct {
|
|
||||||
Cash float64 `json:"cash"`
|
|
||||||
TargetID primitive.ObjectID `json:"targetId"`
|
|
||||||
TargetType string `json:"targetType"`
|
|
||||||
Options GenerateVoucherPromotionOptions `json:"options"`
|
|
||||||
Seller primitive.ObjectID `json:"seller"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GenerateVoucherPromotionOptions ...
|
|
||||||
type GenerateVoucherPromotionOptions struct {
|
|
||||||
Title string `json:"title"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SubscriberNotificationTopic ...
|
|
||||||
type SubscriberNotificationTopic struct {
|
|
||||||
User string `json:"user"`
|
|
||||||
Topic string `json:"topic"`
|
|
||||||
DeviceId string `json:"deviceId"`
|
|
||||||
FCMToken string `json:"fcmToken"`
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
package jssubject
|
|
||||||
|
|
||||||
var root = "js"
|
|
||||||
|
|
||||||
// prefixes ...
|
|
||||||
var prefixes = struct {
|
|
||||||
Selly string
|
|
||||||
}{
|
|
||||||
Selly: "selly",
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package jssubject
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
// getSellyValue ...
|
|
||||||
func getSellyValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s.%s", root, prefixes.Selly, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Selly ...
|
|
||||||
var Selly = struct {
|
|
||||||
PushNotification string
|
|
||||||
UpdateSellerAffiliateStatistic string
|
|
||||||
CheckAnDInsertCashflowBySeller string
|
|
||||||
SubscriberTopic string
|
|
||||||
UpdateSellerSavingCampaignStatistic string
|
|
||||||
GenerateVoucherPromotion string
|
|
||||||
}{
|
|
||||||
PushNotification: getSellyValue("push_notifications"),
|
|
||||||
UpdateSellerAffiliateStatistic: getSellyValue("update_seller_affiliate_statistic"),
|
|
||||||
CheckAnDInsertCashflowBySeller: getSellyValue("check_and_insert_cashflow_statistic"),
|
|
||||||
SubscriberTopic: getSellyValue("subscriber_topic"),
|
|
||||||
UpdateSellerSavingCampaignStatistic: getSellyValue("update_seller_saving_campaign_statistic"),
|
|
||||||
GenerateVoucherPromotion: getSellyValue("generate_voucher_promotion"),
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
package natsio
|
|
||||||
|
|
||||||
import (
|
|
||||||
"log"
|
|
||||||
|
|
||||||
"github.com/nats-io/nats.go"
|
|
||||||
)
|
|
||||||
|
|
||||||
// JSONEncoder ...
|
|
||||||
type JSONEncoder struct {
|
|
||||||
encConn *nats.EncodedConn
|
|
||||||
}
|
|
||||||
|
|
||||||
// Subscribe ...
|
|
||||||
func (e JSONEncoder) Subscribe(subject string, cb nats.Handler) (*nats.Subscription, error) {
|
|
||||||
sub, err := e.encConn.Subscribe(subject, cb)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("natsio.JSONEncoder.Subscribe err: %v\n", err)
|
|
||||||
} else {
|
|
||||||
log.Printf("natsio.JSONEncoder - subscribed to subject %s successfully\n", subject)
|
|
||||||
}
|
|
||||||
return sub, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// QueueSubscribe ...
|
|
||||||
func (e JSONEncoder) QueueSubscribe(subject, queue string, cb nats.Handler) (*nats.Subscription, error) {
|
|
||||||
sub, err := e.encConn.QueueSubscribe(subject, queue, cb)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("natsio.JSONEncoder.QueueSubscribe err: %v\n", err)
|
|
||||||
} else {
|
|
||||||
log.Printf("natsio.JSONEncoder.QueueSubscribe - subscribed to subject %s successfully\n", subject)
|
|
||||||
}
|
|
||||||
return sub, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Publish ...
|
|
||||||
func (e JSONEncoder) Publish(reply string, data interface{}) error {
|
|
||||||
return e.encConn.Publish(reply, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Request ...
|
|
||||||
func (e JSONEncoder) Request(subject string, data interface{}, res interface{}) error {
|
|
||||||
return e.encConn.Request(subject, data, res, requestTimeout)
|
|
||||||
}
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
package natsio
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Common
|
||||||
|
//
|
||||||
|
|
||||||
|
type IDAndName struct {
|
||||||
|
ID string `json:"_id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// USER
|
||||||
|
//
|
||||||
|
|
||||||
|
type User struct {
|
||||||
|
ID string `json:"_id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
Avatar *FilePhoto `json:"avatar"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseToUser(data interface{}, result *User) (err error) {
|
||||||
|
b := InterfaceToBytes(data)
|
||||||
|
if len(b) > 0 {
|
||||||
|
err = json.Unmarshal(b, result)
|
||||||
|
} else {
|
||||||
|
err = errors.New("[natsio.ParseUser] cannot read data")
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// FILE PHOTO
|
||||||
|
//
|
||||||
|
|
||||||
|
type FilePhoto struct {
|
||||||
|
ID string `json:"_id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Dimensions *FileDimensions `json:"dimensions"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileSize struct {
|
||||||
|
Width int `json:"width"`
|
||||||
|
Height int `json:"height"`
|
||||||
|
URL string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileDimensions struct {
|
||||||
|
Small *FileSize `json:"sm"`
|
||||||
|
Medium *FileSize `json:"md"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseToPhoto(data interface{}, result *FilePhoto) (err error) {
|
||||||
|
b := InterfaceToBytes(data)
|
||||||
|
if len(b) > 0 {
|
||||||
|
err = json.Unmarshal(b, result)
|
||||||
|
} else {
|
||||||
|
err = errors.New("[natsio.ParsePhoto] cannot read data")
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
|
@ -1,16 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "time"
|
|
||||||
|
|
||||||
// GetTransactionsRequest ...
|
|
||||||
type GetTransactionsRequest struct {
|
|
||||||
Page int64 `json:"page"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
Keyword string `json:"keyword"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
Source string `json:"source"`
|
|
||||||
Campaign string `json:"campaign"`
|
|
||||||
Seller string `json:"seller"`
|
|
||||||
FromAt time.Time `json:"fromAt"`
|
|
||||||
ToAt time.Time `json:"toAt"`
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// GetTransactionsResponse ...
|
|
||||||
type GetTransactionsResponse struct {
|
|
||||||
Total int64 `json:"total"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
List []TransactionInfo `json:"list"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TransactionInfo ...
|
|
||||||
type TransactionInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Code string `json:"code"`
|
|
||||||
Campaign ResponseCampaignShort `json:"campaign"`
|
|
||||||
Seller ResponseSellerInfo `json:"seller"`
|
|
||||||
Source string `json:"source"`
|
|
||||||
Commission ResponseCampaignCommission `json:"commission"`
|
|
||||||
EstimateSellerCommission float64 `json:"estimateSellerCommission"`
|
|
||||||
TransactionTime string `json:"transactionTime"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
RejectedReason string `json:"rejectedReason"`
|
|
||||||
EstimateCashbackAt string `json:"estimateCashbackAt"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignCommission ...
|
|
||||||
type ResponseCampaignCommission struct {
|
|
||||||
Real float64 `json:"real"`
|
|
||||||
SellerPercent float64 `json:"sellerPercent"`
|
|
||||||
Selly float64 `json:"selly"`
|
|
||||||
Seller float64 `json:"seller"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignShort ...
|
|
||||||
type ResponseCampaignShort struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Logo *FilePhoto `json:"logo"`
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// BankBranchBrief ...
|
|
||||||
type BankBranchBrief struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
City string `json:"city"`
|
|
||||||
BankCode string `json:"bankCode"`
|
|
||||||
Bank string `json:"bank"`
|
|
||||||
Active bool `json:"active"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type BankBranchRequest struct {
|
|
||||||
BankID string `json:"bankId"`
|
|
||||||
BranchID string `json:"branchId"`
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// MultiLang ...
|
|
||||||
type MultiLang struct {
|
|
||||||
En string `json:"en"`
|
|
||||||
Vi string `json:"vi"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// BankBrief ...
|
|
||||||
type BankBrief struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name MultiLang `json:"name"`
|
|
||||||
ShortName string `json:"shortName"`
|
|
||||||
Active bool `json:"active"`
|
|
||||||
BenBankName string `json:"benBankName"`
|
|
||||||
BankCode int `json:"bankCode"`
|
|
||||||
IsBranchRequired bool `json:"isBranchRequired"`
|
|
||||||
SearchString string `json:"searchString"`
|
|
||||||
BeneficiaryForVietinbank string `json:"beneficiaryForVietinbank"`
|
|
||||||
CreatedBy string `json:"createdBy,omitempty"`
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetCampaignTransactionsRequest ...
|
|
||||||
type GetCampaignTransactionsRequest struct {
|
|
||||||
Campaign string `json:"campaign"`
|
|
||||||
Keyword string `json:"keyword"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
FromAt time.Time `json:"fromAt"`
|
|
||||||
ToAt time.Time `json:"toAt"`
|
|
||||||
Page int64 `json:"page"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCampaignSellerStatisticBySellerIDs ...
|
|
||||||
type GetCampaignSellerStatisticBySellerIDs struct {
|
|
||||||
SellerIDs []primitive.ObjectID
|
|
||||||
}
|
|
|
@ -1,88 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
|
|
||||||
// ResponseCampaignTransactionAll ...
|
|
||||||
type ResponseCampaignTransactionAll struct {
|
|
||||||
List []ResponseNatsCampaignTransaction `json:"list"`
|
|
||||||
Total int64 `json:"total"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseNatsCampaignTransaction ...
|
|
||||||
type ResponseNatsCampaignTransaction struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Cash float64 `json:"cash"`
|
|
||||||
Campaign ResponseCampaignShortInfo `json:"campaign"`
|
|
||||||
Options ResponseCampaignTransactionOptions `json:"options"`
|
|
||||||
Seller primitive.ObjectID `json:"seller"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
RejectedReason string `json:"rejectedReason"`
|
|
||||||
CreatedAt string `json:"createdAt"`
|
|
||||||
UpdatedAt string `json:"updatedAt"`
|
|
||||||
Item *ResponseCampaignItemShortInfo `json:"item"`
|
|
||||||
ApprovedBy primitive.ObjectID `json:"approvedBy,omitempty"`
|
|
||||||
RejectedBy primitive.ObjectID `json:"rejectedBy,omitempty"`
|
|
||||||
ApprovedAt string `json:"approvedAt,omitempty"`
|
|
||||||
RejectedAt string `json:"rejectedAt,omitempty"`
|
|
||||||
CompletedAt string `json:"completedAt,omitempty"`
|
|
||||||
RejectReason string `json:"rejectReason,omitempty"`
|
|
||||||
AdminConfirmData *ResponseCampaignTransactionAdminConfirmData `json:"adminConfirmData,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignShortInfo ...
|
|
||||||
type ResponseCampaignShortInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignItemShortInfo ...
|
|
||||||
type ResponseCampaignItemShortInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignTransactionOptions ...
|
|
||||||
type ResponseCampaignTransactionOptions struct {
|
|
||||||
Link string `json:"link"`
|
|
||||||
SocialChannel string `json:"socialChannel"`
|
|
||||||
Milestone int64 `json:"milestone"`
|
|
||||||
MilestoneTitle string `json:"milestoneTitle"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignTransactionAdminConfirmData ...
|
|
||||||
type ResponseCampaignTransactionAdminConfirmData struct {
|
|
||||||
FriendPublicTotal int64 `json:"friendPublicTotal"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignSellerStatisticList ...
|
|
||||||
type ResponseCampaignSellerStatisticList struct {
|
|
||||||
List []ResponseCampaignSellerStatistic `json:"list"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCampaignSellerStatistic ...
|
|
||||||
type ResponseCampaignSellerStatistic struct {
|
|
||||||
SellerID primitive.ObjectID `json:"sellerId"`
|
|
||||||
Statistic CampaignSellerStatistic `json:"Statistic"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CampaignSellerStatistic ...
|
|
||||||
type CampaignSellerStatistic struct {
|
|
||||||
TotalNotRejected int64 `bson:"totalNotRejected" json:"totalNotRejected"`
|
|
||||||
CashTotalNotRejected float64 `bson:"cashTotalNotRejected" json:"cashTotalNotRejected"`
|
|
||||||
|
|
||||||
TotalCompleted int64 `bson:"totalCompleted" json:"totalCompleted"`
|
|
||||||
CashTotalCompleted float64 `bson:"cashTotalCompleted" json:"cashTotalCompleted"`
|
|
||||||
|
|
||||||
TotalPending int64 `bson:"totalPending" json:"totalPending"`
|
|
||||||
CashTotalPending float64 `bson:"cashTotalPending" json:"cashTotalPending"`
|
|
||||||
|
|
||||||
TotalApproved int64 `bson:"totalApproved" json:"totalApproved"`
|
|
||||||
CashTotalApproved float64 `bson:"cashTotalApproved" json:"cashTotalApproved"`
|
|
||||||
|
|
||||||
TotalRejected int64 `bson:"totalRejected" json:"totalRejected"`
|
|
||||||
CashTotalRejected float64 `bson:"cashTotalRejected" json:"cashTotalRejected"`
|
|
||||||
}
|
|
|
@ -1,56 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "go.mongodb.org/mongo-driver/mongo/options"
|
|
||||||
|
|
||||||
type FindWithCondition struct {
|
|
||||||
Conditions interface{} `json:"conditions"`
|
|
||||||
Opts []*options.FindOptions `json:"opts"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type FindOneCondition struct {
|
|
||||||
Conditions interface{} `json:"conditions"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type DistinctWithField struct {
|
|
||||||
Conditions interface{} `json:"conditions"`
|
|
||||||
Filed string `json:"filed"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActionBy struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RequestCondition ...
|
|
||||||
type RequestCondition struct {
|
|
||||||
Code int `json:"code"`
|
|
||||||
Codes []int `json:"codes"`
|
|
||||||
DistrictCode int `json:"districtCode"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
OldSlug string `json:"oldSlug"`
|
|
||||||
|
|
||||||
Slugs []string `json:"slugs"`
|
|
||||||
OldSlugs []string `json:"oldSlugs"`
|
|
||||||
|
|
||||||
DistrictSlug string `json:"districtSlug"`
|
|
||||||
ProvinceSlug string `json:"provinceSlug"`
|
|
||||||
|
|
||||||
Keyword string `json:"keyword"`
|
|
||||||
Region string `json:"region"`
|
|
||||||
|
|
||||||
Page int64 `json:"page"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UpdatePayload struct {
|
|
||||||
Conditions interface{} `json:"conditions"`
|
|
||||||
Payload interface{} `json:"payload"`
|
|
||||||
Opts []*options.UpdateOptions `json:"opts"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type WebhookPayloadV2 struct {
|
|
||||||
Path string `json:"path"` // request URL path from external
|
|
||||||
Data string `json:"data"` // request body
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
// CommonResponseData ...
|
|
||||||
type CommonResponseData struct {
|
|
||||||
Data interface{} `json:"data"`
|
|
||||||
Error string `json:"error"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ParseData ...
|
|
||||||
func (c CommonResponseData) ParseData(resultPointer interface{}) error {
|
|
||||||
b, err := json.Marshal(c.Data)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(b, resultPointer)
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// CommunicationRequestHttp ...
|
|
||||||
type CommunicationRequestHttp struct {
|
|
||||||
ResponseImmediately bool `json:"responseImmediately"`
|
|
||||||
Authentication string `json:"authentication"`
|
|
||||||
Payload HttpRequest `json:"payload"`
|
|
||||||
|
|
||||||
// collection to store log data, will be prepended with log-, default it stored in logs collections
|
|
||||||
LogTarget string `json:"logTarget"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// HttpRequest ...
|
|
||||||
type HttpRequest struct {
|
|
||||||
URL string `json:"url"`
|
|
||||||
Method string `json:"method"`
|
|
||||||
Data string `json:"data"`
|
|
||||||
Header map[string]string `json:"header"`
|
|
||||||
Query map[string]string `json:"query"`
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
// CommunicationHttpResponse ...
|
|
||||||
type CommunicationHttpResponse struct {
|
|
||||||
Response *HttpResponse `json:"response"`
|
|
||||||
Error bool `json:"error"`
|
|
||||||
Message string `json:"message"`
|
|
||||||
RequestID string `json:"requestId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ParseResponseData ...
|
|
||||||
func (r *CommunicationHttpResponse) ParseResponseData(result interface{}) error {
|
|
||||||
if r.Response == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return json.Unmarshal([]byte(r.Response.Body), result)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HttpResponse ...
|
|
||||||
type HttpResponse struct {
|
|
||||||
Body string `json:"body"`
|
|
||||||
StatusCode int `json:"statusCode"`
|
|
||||||
}
|
|
|
@ -1,56 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
|
|
||||||
// FilePhoto ...
|
|
||||||
type FilePhoto struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
Dimensions *FileDimensions `json:"dimensions"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// FileSize ...
|
|
||||||
type FileSize struct {
|
|
||||||
Width int `json:"width"`
|
|
||||||
Height int `json:"height"`
|
|
||||||
URL string `json:"url"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// FileDimensions ...
|
|
||||||
type FileDimensions struct {
|
|
||||||
Small *FileSize `json:"sm"`
|
|
||||||
Medium *FileSize `json:"md"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ListPhoto ...
|
|
||||||
type ListPhoto []*FilePhoto
|
|
||||||
|
|
||||||
// Video ...
|
|
||||||
type Video struct {
|
|
||||||
ID primitive.ObjectID `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Dimensions *FileVideoDimensions `json:"dimensions"`
|
|
||||||
VideoExtension string `json:"ext"`
|
|
||||||
Thumbnail *FilePhoto `json:"thumbnail"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// FileVideoDimensions ...
|
|
||||||
type FileVideoDimensions struct {
|
|
||||||
Dimension480p *FileVideoSize `json:"size480p"`
|
|
||||||
Dimension720p *FileVideoSize `json:"size720p"`
|
|
||||||
Dimension1080p *FileVideoSize `json:"size1080p"`
|
|
||||||
DimensionOriginal *FileVideoSize `json:"original"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// FileVideoSize ...
|
|
||||||
type FileVideoSize struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
Width int `json:"width"`
|
|
||||||
Height int `json:"height"`
|
|
||||||
Size string `json:"size"`
|
|
||||||
URL string `json:"url"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ListVideo ...
|
|
||||||
type ListVideo []Video
|
|
|
@ -1,66 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// LocationRequestPayload ...
|
|
||||||
type (
|
|
||||||
// LocationRequestPayload ...
|
|
||||||
LocationRequestPayload struct {
|
|
||||||
Province int `json:"province"`
|
|
||||||
District int `json:"district"`
|
|
||||||
Ward int `json:"ward"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProvinceRequestPayload ...
|
|
||||||
ProvinceRequestPayload struct {
|
|
||||||
Codes []int `json:"codes"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProvinceRequestCondition ...
|
|
||||||
ProvinceRequestCondition struct {
|
|
||||||
Code int `json:"code"`
|
|
||||||
Codes []int `json:"codes"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
Slugs []string `json:"slugs"`
|
|
||||||
Keyword string `json:"keyword"`
|
|
||||||
Region string `json:"region"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DistrictRequestPayload ...
|
|
||||||
DistrictRequestPayload struct {
|
|
||||||
Codes []int `json:"codes"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DistrictRequestCondition ...
|
|
||||||
DistrictRequestCondition struct {
|
|
||||||
Code int `json:"code"`
|
|
||||||
Codes []int `json:"codes"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
ProvinceSlug string `json:"provinceSlug"`
|
|
||||||
Keyword string `json:"keyword"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WardRequestPayload ...
|
|
||||||
WardRequestPayload struct {
|
|
||||||
Codes []int `json:"codes"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WardRequestCondition ...
|
|
||||||
WardRequestCondition struct {
|
|
||||||
Code int `json:"code"`
|
|
||||||
Codes []int `json:"codes"`
|
|
||||||
DistrictCode int `json:"districtCode"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
DistrictSlug string `json:"districtSlug"`
|
|
||||||
ProvinceSlug string `json:"provinceSlug"`
|
|
||||||
Keyword string `json:"keyword"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProvinceDistinctWithField ...
|
|
||||||
ProvinceDistinctWithField struct {
|
|
||||||
Conditions struct {
|
|
||||||
Region string `json:"region"`
|
|
||||||
} `json:"conditions"`
|
|
||||||
Field string `json:"filed"`
|
|
||||||
}
|
|
||||||
)
|
|
|
@ -1,95 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type (
|
|
||||||
// ResponseLocationAddress ...
|
|
||||||
ResponseLocationAddress struct {
|
|
||||||
Province LocationProvince `json:"province"`
|
|
||||||
District LocationDistrict `json:"district"`
|
|
||||||
Ward LocationWard `json:"ward"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationProvince ...
|
|
||||||
LocationProvince struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
RegionCode string `json:"regionCode"`
|
|
||||||
MainRegionCode string `json:"mainRegionCode"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationDistrict ...
|
|
||||||
LocationDistrict struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationWard ...
|
|
||||||
LocationWard struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
Location *GEOLocation `json:"location"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GEOLocation ...
|
|
||||||
GEOLocation struct {
|
|
||||||
Type string `bson:"type" json:"type"`
|
|
||||||
Coordinates []float64 `bson:"coordinates" json:"coordinates"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationProvinceResponse ...
|
|
||||||
LocationProvinceResponse struct {
|
|
||||||
Provinces []LocationProvince `json:"provinces"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationDistrictResponse ...
|
|
||||||
LocationDistrictResponse struct {
|
|
||||||
Districts []LocationDistrict `json:"districts"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationWardResponse ...
|
|
||||||
LocationWardResponse struct {
|
|
||||||
Wards []LocationWard `json:"wards"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationProvinceDetailResponse ...
|
|
||||||
LocationProvinceDetailResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
CountryCode string `json:"countryCode"`
|
|
||||||
RegionCode string `json:"regionCode"`
|
|
||||||
MainRegionCode string `json:"mainRegionCode"`
|
|
||||||
TotalDistricts int `json:"totalDistricts"`
|
|
||||||
TotalWards int `json:"totalWards"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationDistrictDetailResponse ...
|
|
||||||
LocationDistrictDetailResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
OldSlugs []string `json:"oldSlugs"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
Area int `json:"area"`
|
|
||||||
TotalWards int `json:"totalWards"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LocationWardDetailResponse ...
|
|
||||||
LocationWardDetailResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
OldSlugs []string `json:"oldSlugs"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
DistrictCode int `json:"districtCode"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
Location *GEOLocation `json:"location"`
|
|
||||||
}
|
|
||||||
)
|
|
|
@ -1,6 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// GetProductNoticesByInventoryRequest ....
|
|
||||||
type GetProductNoticesByInventoryRequest struct {
|
|
||||||
InventoryIds []string `json:"inventoryIds"`
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// GetProductNoticesByInventoryResponse ....
|
|
||||||
type GetProductNoticesByInventoryResponse struct {
|
|
||||||
Notices []NewsAppResponse `json:"notices"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewsAppResponse ...
|
|
||||||
type NewsAppResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Title string `json:"title,omitempty"`
|
|
||||||
Target *TargetNewDoc `json:"target,omitempty"`
|
|
||||||
ActionType *ActionType `json:"action"`
|
|
||||||
ShortDesc string `json:"shortDesc,omitempty"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
ShortTitle string `json:"shortTitle,omitempty"`
|
|
||||||
Color string `json:"color"`
|
|
||||||
Options *NewsOptions `json:"options,omitempty"`
|
|
||||||
DisplayStyle string `json:"displayStyle"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewsOptions ...
|
|
||||||
type NewsOptions struct {
|
|
||||||
Category string `json:"category"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TargetNewDoc ...
|
|
||||||
type TargetNewDoc struct {
|
|
||||||
Type string `json:"type,omitempty"`
|
|
||||||
Value string `json:"value,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ActionType ...
|
|
||||||
type ActionType struct {
|
|
||||||
Type string `json:"type"`
|
|
||||||
Value string `json:"value"`
|
|
||||||
Text string `json:"text,omitempty"`
|
|
||||||
}
|
|
|
@ -1,55 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// OrderUpdateORStatus ...
|
|
||||||
type OrderUpdateORStatus struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
OrderCode string `json:"orderCode"`
|
|
||||||
ORCode string `json:"orCode"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
DeliveryStatus string `json:"deliveryStatus"`
|
|
||||||
Reason string `json:"reason"`
|
|
||||||
Data OrderORData `json:"data"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrderCancelDelivery ...
|
|
||||||
type OrderCancelDelivery struct {
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrderChangeDeliveryStatus ...
|
|
||||||
type OrderChangeDeliveryStatus struct {
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
DeliveryStatus string `json:"deliveryStatus"`
|
|
||||||
ActionBy ActionBy `json:"actionBy"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrderORData ...
|
|
||||||
type OrderORData struct {
|
|
||||||
Link string `json:"link"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrderUpdateLogisticInfoFailed ...
|
|
||||||
type OrderUpdateLogisticInfoFailed struct {
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
ORCode string `json:"orCode"`
|
|
||||||
Reason string `json:"reason"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrderORsNotUpdateStatus ...
|
|
||||||
type OrderORsNotUpdateStatus struct {
|
|
||||||
ORCodes []string `json:"orCodes"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrderSupplierQuery ...
|
|
||||||
type OrderSupplierQuery struct {
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
Page int64 `json:"page"`
|
|
||||||
FromDate string `json:"fromDate"`
|
|
||||||
ToDate string `json:"toDate"`
|
|
||||||
SupplierID string `json:"supplierId"`
|
|
||||||
WarehouseIDs []string `json:"warehouseIDs"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type OrderGetTotalWarningPayload struct {
|
|
||||||
UserID string `json:"userId"`
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "time"
|
|
||||||
|
|
||||||
// SupplierOrderList ...
|
|
||||||
type SupplierOrderList struct {
|
|
||||||
List []SupplierOrder `json:"list"`
|
|
||||||
Total int64 `json:"total" example:"100"`
|
|
||||||
Limit int64 `json:"limit" example:"20"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SupplierOrder ...
|
|
||||||
type SupplierOrder struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Code string `json:"code"`
|
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
WarehouseStatus string `json:"warehouseStatus"`
|
|
||||||
Items []SupplierOrderItem `json:"items"`
|
|
||||||
Delivery SupplierOrderDelivery `json:"delivery"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SupplierOrderItem ...
|
|
||||||
type SupplierOrderItem struct {
|
|
||||||
ID string `json:"_id" example:"1231"`
|
|
||||||
SupplierSKU string `json:"supplierSku" example:"SUPPLIER_SKU"`
|
|
||||||
Quantity int64 `json:"quantity" example:"2"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SupplierOrderDelivery ...
|
|
||||||
type SupplierOrderDelivery struct {
|
|
||||||
Code string `json:"code" example:"123187287"`
|
|
||||||
Status string `json:"status" enums:"waiting_to_confirm,waiting_to_pick,picking,picked,delay_pickup,pickup_failed,delivering,delay_delivery,delivered,cancelled,delivery_failed,waiting_to_return,returning,delay_return,compensation,returned"`
|
|
||||||
TPLCode string `json:"tplCode" enums:"SLY,GHTK,GHN,SSC,SPY,VTP,SE,NTL,BEST"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrderGetTotalWarningRes ...
|
|
||||||
type OrderGetTotalWarningRes struct {
|
|
||||||
UserID string `json:"userId"`
|
|
||||||
TotalWarningOrder int64 `json:"totalWarningOrder"`
|
|
||||||
Action ActionType `json:"action"`
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type ProductApplyRequestPayload struct {
|
|
||||||
RequestID string `json:"requestId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ProductCreateStepsPayload struct {
|
|
||||||
RequestID string `json:"requestId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ProductRequestChangeStatus struct {
|
|
||||||
RequestID string `json:"requestId"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type QueueScheduleTaskRequest struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
NatsSubject string `json:"natsSubject"`
|
|
||||||
Data string `json:"data"`
|
|
||||||
StartAt int64 `json:"startAt"` // unix
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// GetListSegmentRequest ...
|
|
||||||
type GetListSegmentRequest struct {
|
|
||||||
SegmentIds []string `json:"segmentIds"`
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// ResponseSegmentInfo ...
|
|
||||||
type ResponseSegmentInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseListSegmentInfo ...
|
|
||||||
type ResponseListSegmentInfo struct {
|
|
||||||
Segments []ResponseSegmentInfo `json:"segments"`
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
|
|
||||||
// GetSellerByIDRequest ...
|
|
||||||
type GetSellerByIDRequest struct {
|
|
||||||
SellerID primitive.ObjectID `json:"sellerId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListSellerByIDsRequest ...
|
|
||||||
type GetListSellerByIDsRequest struct {
|
|
||||||
SellerIDs []primitive.ObjectID `json:"sellerIds"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetListSellerSupportChatByIDsRequest ...
|
|
||||||
type GetListSellerSupportChatByIDsRequest struct {
|
|
||||||
SellerIDs []primitive.ObjectID `json:"sellerIds"`
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "time"
|
|
||||||
|
|
||||||
// ResponseSellerInfo ...
|
|
||||||
type ResponseSellerInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Code string `json:"code"`
|
|
||||||
IsAccountPro bool `json:"isAccountPro"`
|
|
||||||
CashRemaining float64 `json:"cashRemaining"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseListSellerInfo ...
|
|
||||||
type ResponseListSellerInfo struct {
|
|
||||||
Sellers []ResponseSellerInfo `json:"sellers"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseListSellerInfoSupportChat ...
|
|
||||||
type ResponseListSellerInfoSupportChat struct {
|
|
||||||
Sellers []ResponseSellerInfoSupportChat `json:"sellers"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseSellerInfoSupportChat ...
|
|
||||||
type ResponseSellerInfoSupportChat struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Code string `json:"code"`
|
|
||||||
Membership SellerMembershipInfo `json:"membership"`
|
|
||||||
Info SellerContactInfo `json:"info"`
|
|
||||||
Team *TeamInfo `json:"team,omitempty"`
|
|
||||||
Statistic SellerStatistic `json:"statistic"`
|
|
||||||
TrackingTime *SellerTrackingTime `json:"trackingTime"`
|
|
||||||
Invitee *InviteeInfo `json:"invitee"`
|
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
|
||||||
PlanPackage *SellerPlanPackageInfo `json:"planPackage"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SellerPlanPackageInfo ...
|
|
||||||
type SellerPlanPackageInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Level int `json:"level"`
|
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SellerTrackingTime ...
|
|
||||||
type SellerTrackingTime struct {
|
|
||||||
FirstOrderDeliveredAt time.Time `json:"firstOrderDeliveredAt,omitempty"`
|
|
||||||
ThirdOrderDeliveredAt time.Time `json:"thirdOrderDeliveredAt,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SellerStatistic ...
|
|
||||||
type SellerStatistic struct {
|
|
||||||
ThisMonthSale float64 `bson:"thisMonthSale" json:"thisMonthSale"`
|
|
||||||
LastMonthSale float64 `bson:"lastMonthSale" json:"lastMonthSale"`
|
|
||||||
Sale float64 `bson:"sale" json:"sale"`
|
|
||||||
TransactionTotal int `json:"transactionTotal"`
|
|
||||||
TransactionPaymentProcessing int `json:"transactionPaymentProcessing"`
|
|
||||||
TransactionWaitingApprove int `json:"transactionWaitingApprove"`
|
|
||||||
TransactionPending int `json:"transactionPending"`
|
|
||||||
TransactionSuccess int `json:"transactionSuccess"`
|
|
||||||
TransactionRejected int `json:"transactionRejected"`
|
|
||||||
TransactionDelivering int `json:"transactionDelivering"`
|
|
||||||
TransactionDelivered int `json:"transactionDelivered"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TeamInfo ...
|
|
||||||
type TeamInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Role string `json:"role"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// InviteeInfo ...
|
|
||||||
type InviteeInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SellerContactInfo ...
|
|
||||||
type SellerContactInfo struct {
|
|
||||||
City int `json:"cityCode"`
|
|
||||||
CityName string `json:"cityName"`
|
|
||||||
Gender string `json:"gender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SellerMembershipInfo ...
|
|
||||||
type SellerMembershipInfo struct {
|
|
||||||
Level int `json:"level"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
|
|
||||||
// GetListSocialPostAppByIDsRequest ...
|
|
||||||
type GetListSocialPostAppByIDsRequest struct {
|
|
||||||
SocialPostIDs []primitive.ObjectID `json:"socialPostIDs"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetBriefInfoSocialPostAdminByIDsRequest ...
|
|
||||||
type GetBriefInfoSocialPostAdminByIDsRequest struct {
|
|
||||||
SocialPostIDs []primitive.ObjectID `json:"socialPostIDs"`
|
|
||||||
}
|
|
|
@ -1,61 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ResponseListSocialPostAppInfo ...
|
|
||||||
type ResponseListSocialPostAppInfo struct {
|
|
||||||
SocialPosts []SocialPostAppInfo `json:"socialPosts"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SocialPostAppInfo ...
|
|
||||||
type SocialPostAppInfo struct {
|
|
||||||
ID primitive.ObjectID `json:"_id"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
Content string `json:"content"`
|
|
||||||
Statistic SocialPostStatistic `json:"statistic"`
|
|
||||||
Author *SocialPostSellerInfo `json:"author"`
|
|
||||||
Photos ListPhoto `json:"photos"`
|
|
||||||
PublishedAt time.Time `json:"publishedAt"`
|
|
||||||
IsLiked bool `json:"isLiked"`
|
|
||||||
IsPin bool `json:"isPin"`
|
|
||||||
Contributor *SocialPostSellerInfo `json:"contributor"`
|
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
HasUpdate bool `json:"hasUpdate"`
|
|
||||||
Order int `json:"order"`
|
|
||||||
Videos ListVideo `json:"videos"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SocialPostStatistic ...
|
|
||||||
type SocialPostStatistic struct {
|
|
||||||
Views int `json:"views"`
|
|
||||||
UniqueViews int `json:"uniqueViews"`
|
|
||||||
Likes int `json:"likes"`
|
|
||||||
Shares int `json:"shares"`
|
|
||||||
UniqueShares int `json:"uniqueShares"`
|
|
||||||
Comments int `json:"comments"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SocialPostSellerInfo ...
|
|
||||||
type SocialPostSellerInfo struct {
|
|
||||||
ID primitive.ObjectID `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Membership SellerMembershipInfo `json:"membership"`
|
|
||||||
Logo *FilePhoto `json:"avatar"`
|
|
||||||
IsMine bool `json:"isMine"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseListSocialPostAdminInfo ...
|
|
||||||
type ResponseListSocialPostAdminInfo struct {
|
|
||||||
SocialPosts []SocialPostAdminInfo `json:"socialPosts"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SocialPostAdminInfo ...
|
|
||||||
type SocialPostAdminInfo struct {
|
|
||||||
ID primitive.ObjectID `json:"_id"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// PayloadEmitSocketEvent ...
|
|
||||||
type PayloadEmitSocketEvent struct {
|
|
||||||
User string `json:"user"`
|
|
||||||
Message string `json:"message"`
|
|
||||||
Data string `json:"data"`
|
|
||||||
IsNotRemove bool `json:"isNotRemove"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// PayloadEventSocketReward ...
|
|
||||||
type PayloadEventSocketReward struct {
|
|
||||||
Type string `json:"type"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
Cash float64 `json:"cash"`
|
|
||||||
Message string `json:"message"`
|
|
||||||
Photo interface{} `json:"photo"`
|
|
||||||
Action *ActionType `json:"action"`
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// GetListStaffRequest ...
|
|
||||||
type GetListStaffRequest struct {
|
|
||||||
StaffIds []string `json:"staffIds"`
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// ResponseListStaffInfo ...
|
|
||||||
type ResponseListStaffInfo struct {
|
|
||||||
Staffs []ResponseStaffInfo `json:"staffs"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseStaffInfo ...
|
|
||||||
type ResponseStaffInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetSupplierRequest ...
|
|
||||||
type GetSupplierRequest struct {
|
|
||||||
ListID []primitive.ObjectID `json:"listID"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetDetailSupplierRequest ...
|
|
||||||
type GetDetailSupplierRequest struct {
|
|
||||||
Supplier string `json:"supplier"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetSupplierContractRequest struct {
|
|
||||||
SupplierID primitive.ObjectID `json:"supplierID"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SupplierRequestPayload ...
|
|
||||||
type SupplierRequestPayload struct {
|
|
||||||
Limit int
|
|
||||||
Page int
|
|
||||||
Keyword string
|
|
||||||
Status string
|
|
||||||
PIC string
|
|
||||||
ContractStatus string
|
|
||||||
}
|
|
||||||
|
|
||||||
type CreateSupplierWarehousePayload struct {
|
|
||||||
Supplier string `json:"supplier"`
|
|
||||||
Warehouse string `json:"warehouse"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
DistrictCode int `json:"districtCode"`
|
|
||||||
WardCode int `json:"wardCode"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UpdateSupplierWarehousePayload struct {
|
|
||||||
Supplier string `json:"supplier"`
|
|
||||||
Warehouse string `json:"warehouse"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
DistrictCode int `json:"districtCode"`
|
|
||||||
WardCode int `json:"wardCode"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type SupplierFindAllReq struct {
|
|
||||||
Page int64 `json:"page"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
Segment string `json:"segment"`
|
|
||||||
IDs []string `json:"ids"`
|
|
||||||
Status string `json:"status"` // active,inactive
|
|
||||||
}
|
|
||||||
|
|
||||||
type SupplierCountReq struct {
|
|
||||||
Segment string `json:"segment"`
|
|
||||||
IDs []string `json:"ids"`
|
|
||||||
Status string `json:"status"` // active,inactive
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// ResponseSupplierInfo ...
|
|
||||||
type ResponseSupplierInfo struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
BusinessType string `json:"businessType"`
|
|
||||||
IsSellyMall bool `json:"isSellyMall"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseSupplierContract ...
|
|
||||||
type ResponseSupplierContract struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Supplier string `json:"supplier"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SupplierBrief ...
|
|
||||||
type SupplierBrief struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
BusinessType string `json:"businessType"`
|
|
||||||
CreatedAt string `json:"createdAt"`
|
|
||||||
UpdatedAt string `json:"updatedAt"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type SupplierAll struct {
|
|
||||||
Suppliers []SupplierBrief `json:"suppliers"`
|
|
||||||
Total int64 `json:"total"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type SupplierCountRes struct {
|
|
||||||
Total int64 `json:"total"`
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
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"`
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type CreateRoleResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type CreateOwnerRequest 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 UpdateOwnerRequest 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 CreateStaffRequest 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 UpdateStaffRequest struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Phone string `json:"phone"`
|
|
||||||
Email string `json:"email"`
|
|
||||||
SupplierID string `json:"supplierId"`
|
|
||||||
RoleID string `json:"roleId"`
|
|
||||||
Password string `json:"password"`
|
|
||||||
SupplierUserWarehouseID string `json:"supplierUserWarehouseId"`
|
|
||||||
Warehouses []string `json:"warehouses"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UpdateStatusRequest struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResetPasswordRequest struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Password string `json:"password"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CheckTokenSupplierUserPayload ...
|
|
||||||
type CheckTokenSupplierUserPayload struct {
|
|
||||||
Token string `json:"token"`
|
|
||||||
Permissions []string `json:"permissions"`
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type CreateOwnerResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CreateStaffResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResetPasswordResponse struct {
|
|
||||||
Password string `json:"password"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseCheckTokenSupplierUser ...
|
|
||||||
type ResponseCheckTokenSupplierUser struct {
|
|
||||||
IsValid bool `json:"isValid"`
|
|
||||||
Reason string `json:"reason"`
|
|
||||||
User ResponseSupplierUserInfo `json:"supplier"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResponseSupplierUserInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
SupplierID string `json:"supplierId"`
|
|
||||||
}
|
|
|
@ -1,139 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
// OutboundRequestPayload ...
|
|
||||||
type OutboundRequestPayload struct {
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
OrderCode string `json:"orderCode"`
|
|
||||||
TrackingCode string `json:"trackingCode"`
|
|
||||||
WarehouseID string `json:"warehouseId"`
|
|
||||||
SupplierID string `json:"supplierId"`
|
|
||||||
Note string `json:"note"`
|
|
||||||
CODAmount float64 `json:"codAmount"`
|
|
||||||
TPLCode string `json:"tplCode"`
|
|
||||||
Customer CustomerInfo `json:"customer"`
|
|
||||||
Items []OutboundRequestItem `json:"items"`
|
|
||||||
Insurance *InsuranceOpts `json:"insurance"`
|
|
||||||
PaymentMethod string `json:"paymentMethod"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// InsuranceOpts ...
|
|
||||||
type InsuranceOpts struct {
|
|
||||||
InsuranceType string `json:"insuranceType"`
|
|
||||||
VehicleTypeID string `json:"vehicleTypeId"`
|
|
||||||
VehicleTypeName string `json:"vehicleTypeName"`
|
|
||||||
InsuranceTypeID string `json:"insuranceTypeId"`
|
|
||||||
YearsOfInsurance int `json:"yearsOfInsurance"`
|
|
||||||
License string `json:"license"`
|
|
||||||
Chassis string `json:"chassis"`
|
|
||||||
Engine string `json:"engine"`
|
|
||||||
BeginDate string `json:"beginDate"`
|
|
||||||
|
|
||||||
// For car insurance
|
|
||||||
NumberOfSeatsCarOccupantAccidentInsurance int `json:"numberOfSeatsCarOccupantAccidentInsurance"`
|
|
||||||
NumberOfSeats int `json:"numberOfSeats"`
|
|
||||||
NumberOfSeatsOrTonnageId string `json:"numberOfSeatsOrTonnageId"`
|
|
||||||
NumberOfSeatsOrTonnageName string `json:"numberOfSeatsOrTonnageName"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// OutboundRequestItem ...
|
|
||||||
type OutboundRequestItem struct {
|
|
||||||
SupplierSKU string `json:"supplierSKU"`
|
|
||||||
Quantity int64 `json:"quantity"`
|
|
||||||
UnitCode string `json:"unitCode"`
|
|
||||||
Price float64 `json:"price"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
PartnerProductCode string `json:"partnerProductCode"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CustomerInfo ...
|
|
||||||
type CustomerInfo struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
PhoneNumber string `json:"phoneNumber"`
|
|
||||||
Email string `json:"email"`
|
|
||||||
Address AddressDetail `json:"address"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddressDetail ...
|
|
||||||
type AddressDetail struct {
|
|
||||||
Address string `json:"address"`
|
|
||||||
FullAddress string `json:"fullAddress"`
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
|
||||||
DistrictCode int `json:"districtCode"`
|
|
||||||
WardCode int `json:"wardCode"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateOutboundRequestLogisticInfoPayload ...
|
|
||||||
type UpdateOutboundRequestLogisticInfoPayload struct {
|
|
||||||
ShippingLabel string `json:"shippingLabel,omitempty"`
|
|
||||||
TrackingCode string `json:"trackingCode,omitempty"`
|
|
||||||
ORCode string `json:"orCode,omitempty"`
|
|
||||||
TPLCode string `json:"tplCode,omitempty"`
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
DeliveryStatus string `json:"deliveryStatus,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CancelOutboundRequest ...
|
|
||||||
type CancelOutboundRequest struct {
|
|
||||||
ORCode string `json:"orCode"`
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
Note string `json:"note"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SyncORStatusRequest ...
|
|
||||||
type SyncORStatusRequest struct {
|
|
||||||
ORCode string `json:"orCode"`
|
|
||||||
OrderCode string `json:"orderCode"`
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateSupplierIsClosedRequest ...
|
|
||||||
type UpdateSupplierIsClosedRequest struct {
|
|
||||||
Suppliers []SupplierIsClosed `json:"suppliers"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SupplierIsClosed ...
|
|
||||||
type SupplierIsClosed struct {
|
|
||||||
Supplier string `json:"supplier"`
|
|
||||||
IsClosed bool `json:"isClosed"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetWarehousesRequest ...
|
|
||||||
type GetWarehousesRequest struct {
|
|
||||||
Keyword string `json:"keyword"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
Supplier string `json:"supplier"`
|
|
||||||
BusinessType string `json:"businessType"`
|
|
||||||
IDs []string `json:"ids"`
|
|
||||||
|
|
||||||
Page int64 `json:"page"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseORUpdateDeliveryStatus ...
|
|
||||||
type WarehouseORUpdateDeliveryStatus struct {
|
|
||||||
ORCode string `json:"orCode"`
|
|
||||||
OrderCode string `json:"orderCode"`
|
|
||||||
OrderID string `json:"orderId"`
|
|
||||||
DeliveryStatus string `json:"deliveryStatus"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateStatusWarehousePendingInactiveRequest ...
|
|
||||||
type UpdateStatusWarehousePendingInactiveRequest struct {
|
|
||||||
Warehouses []UpdateStatusWarehousePendingInactive `json:"warehouses"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateIsSellyMallRequest ...
|
|
||||||
type UpdateIsSellyMallRequest struct {
|
|
||||||
SupplierID string `json:"supplier"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateStatusWarehousePendingInactive ...
|
|
||||||
type UpdateStatusWarehousePendingInactive struct {
|
|
||||||
WarehouseID string `json:"warehouse"`
|
|
||||||
PendingInactive bool `json:"pendingInactive"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetListWarehouseConfigReq struct {
|
|
||||||
PartnerCode string `json:"partnerCode"`
|
|
||||||
PartnerIdentityCode string `json:"partnerIdentityCode"`
|
|
||||||
}
|
|
|
@ -1,194 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
import "time"
|
|
||||||
|
|
||||||
// OutboundRequestResponse ...
|
|
||||||
type OutboundRequestResponse struct {
|
|
||||||
// System code
|
|
||||||
OrderCode string `json:"orderCode"`
|
|
||||||
TrackingCode string `json:"trackingCode"`
|
|
||||||
ID string `json:"id"` // OR id
|
|
||||||
|
|
||||||
// Partner response
|
|
||||||
ORCode string `json:"orCode"`
|
|
||||||
RequestID string `json:"requestId"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
Reason string `json:"reason"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseConfiguration ...
|
|
||||||
type WarehouseConfiguration struct {
|
|
||||||
Warehouse string `json:"warehouse"`
|
|
||||||
DoesSupportSellyExpress bool `json:"doesSupportSellyExpress"`
|
|
||||||
Supplier WarehouseSupplier `json:"supplier"`
|
|
||||||
Order WarehouseOrder `json:"order"`
|
|
||||||
Partner WarehousePartner `json:"partner"`
|
|
||||||
Delivery WarehouseDelivery `json:"delivery"`
|
|
||||||
Other WarehouseOther `json:"other"`
|
|
||||||
Food WarehouseFood `json:"food"`
|
|
||||||
AutoConfirmOrder WarehouseOrderConfirm `json:"autoConfirmOrder"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseOrderConfirm ...
|
|
||||||
type WarehouseOrderConfirm struct {
|
|
||||||
IsEnable bool `json:"isEnable"`
|
|
||||||
ConfirmDelayInSeconds int64 `json:"confirmDelayInSeconds"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseFood ...
|
|
||||||
type WarehouseFood struct {
|
|
||||||
ForceClosed bool `json:"forceClosed"`
|
|
||||||
IsClosed bool `json:"isClosed"`
|
|
||||||
TimeRange []TimeRange `json:"timeRange"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TimeRange ...
|
|
||||||
type TimeRange struct {
|
|
||||||
From int64 `json:"from"`
|
|
||||||
To int64 `json:"to"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseOther ...
|
|
||||||
type WarehouseOther struct {
|
|
||||||
DoesSupportSellyExpress bool `json:"doesSupportSellyExpress"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseSupplier ...
|
|
||||||
type WarehouseSupplier struct {
|
|
||||||
CanAutoSendMail bool `json:"canAutoSendMail"`
|
|
||||||
InvoiceDeliveryMethod string `json:"invoiceDeliveryMethod"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseOrder ...
|
|
||||||
type WarehouseOrder struct {
|
|
||||||
MinimumValue float64 `json:"minimumValue"`
|
|
||||||
PaymentMethod WarehousePaymentMethod `json:"paymentMethod"`
|
|
||||||
IsLimitNumberOfPurchases bool `json:"isLimitNumberOfPurchases"`
|
|
||||||
LimitNumberOfPurchases int64 `json:"limitNumberOfPurchases"`
|
|
||||||
NotifyOnNewOrder WarehouseConfigNotifyOnNewOrder `json:"notifyOnNewOrder"`
|
|
||||||
LabelSize string `json:"labelSize"`
|
|
||||||
MaximumOrderValue float64 `json:"maximumOrderValue"`
|
|
||||||
MaximumNumberPerBuyerEachMonth int64 `json:"maximumNumberPerBuyerEachMonth"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseConfigNotifyOnNewOrder ...
|
|
||||||
type WarehouseConfigNotifyOnNewOrder struct {
|
|
||||||
Enable bool `bson:"enable" json:"enable"`
|
|
||||||
Channel string `bson:"channel" json:"channel"`
|
|
||||||
RoomID string `bson:"roomId" json:"roomId"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehousePaymentMethod ...
|
|
||||||
type WarehousePaymentMethod struct {
|
|
||||||
Cod bool `json:"cod"`
|
|
||||||
BankTransfer bool `json:"bankTransfer"`
|
|
||||||
Fundiin bool `json:"fundiin"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseDelivery ...
|
|
||||||
type WarehouseDelivery struct {
|
|
||||||
DeliveryMethods []string `json:"deliveryMethods"`
|
|
||||||
PriorityServiceCodes []string `json:"priorityServiceCodes"`
|
|
||||||
EnabledSources []int `json:"enabledSources"`
|
|
||||||
Types []string `json:"types"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehousePartner ...
|
|
||||||
type WarehousePartner struct {
|
|
||||||
IdentityCode string `json:"identityCode"`
|
|
||||||
Code string `json:"code"`
|
|
||||||
Enabled bool `json:"enabled"`
|
|
||||||
Authentication string `json:"authentication"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SyncORStatusResponse ...
|
|
||||||
type SyncORStatusResponse struct {
|
|
||||||
ORCode string `json:"orCode"`
|
|
||||||
OrderCode string `json:"orderCode"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
DeliveryStatus string `json:"deliveryStatus"`
|
|
||||||
Data OrderORData `json:"data"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseWarehouseContact ...
|
|
||||||
type ResponseWarehouseContact struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
Phone string `json:"phone"`
|
|
||||||
Address string `json:"address"`
|
|
||||||
Email string `json:"email"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseWarehouseLocation ...
|
|
||||||
type ResponseWarehouseLocation struct {
|
|
||||||
Province CommonLocation `json:"province"`
|
|
||||||
District CommonLocation `json:"district"`
|
|
||||||
Ward CommonLocation `json:"ward"`
|
|
||||||
Address string `json:"address"`
|
|
||||||
LocationCoordinates ResponseLatLng `json:"locationCoordinates"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CommonLocation struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseLatLng ...
|
|
||||||
type ResponseLatLng struct {
|
|
||||||
Latitude float64 `json:"latitude"`
|
|
||||||
Longitude float64 `json:"longitude"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseNatsResponse ...
|
|
||||||
type WarehouseNatsResponse struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Staff string `json:"staff"`
|
|
||||||
BusinessType string `json:"businessType"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
SearchString string `json:"searchString"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
Supplier string `json:"supplier"`
|
|
||||||
Contact ResponseWarehouseContact `json:"contact"`
|
|
||||||
Location ResponseWarehouseLocation `json:"location"`
|
|
||||||
Configurations WarehouseConfiguration `json:"configurations"`
|
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
|
||||||
UpdatedAt time.Time `json:"updatedAt"`
|
|
||||||
ReasonPendingInactive string `json:"reasonPendingInactive"`
|
|
||||||
IsPendingInactive bool `json:"isPendingInactive"`
|
|
||||||
IsFromInternational bool `json:"isFromInternational"`
|
|
||||||
StoreCode string `json:"storeCode"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseInfo ...
|
|
||||||
type WarehouseInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
BusinessType string `json:"businessType"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
Slug string `json:"slug"`
|
|
||||||
Supplier WarehouseSupplierInfo `json:"supplier"`
|
|
||||||
Location ResponseWarehouseLocation `json:"location"`
|
|
||||||
Contact ResponseWarehouseContact `json:"contact"`
|
|
||||||
CreatedAt string `json:"createdAt"`
|
|
||||||
UpdatedAt string `json:"updatedAt"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WarehouseSupplierInfo ...
|
|
||||||
type WarehouseSupplierInfo struct {
|
|
||||||
ID string `json:"_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetWarehousesResponse ...
|
|
||||||
type GetWarehousesResponse struct {
|
|
||||||
Total int64 `json:"total"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
List []WarehouseInfo `json:"list"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetListWarehouseConfigRes struct {
|
|
||||||
Total int64 `json:"total"`
|
|
||||||
Limit int64 `json:"limit"`
|
|
||||||
List []WarehouseConfiguration `json:"list"`
|
|
||||||
}
|
|
51
natsio.go
51
natsio.go
|
@ -3,40 +3,48 @@ package natsio
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
"github.com/nats-io/nats.go"
|
"github.com/nats-io/nats.go"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Server ...
|
// Server ...
|
||||||
type Server struct {
|
type Server struct {
|
||||||
instance *nats.Conn
|
instance *nats.Conn
|
||||||
Config Config
|
cfg Config
|
||||||
}
|
}
|
||||||
|
|
||||||
// JetStream ...
|
// JetStream ...
|
||||||
type JetStream struct {
|
type JetStream struct {
|
||||||
instance nats.JetStreamContext
|
instance nats.JetStreamContext
|
||||||
|
cfg Config
|
||||||
|
streamName string
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
natsServer Server
|
natsServer Server
|
||||||
natsJetStream JetStream
|
natsJetStream JetStream
|
||||||
|
|
||||||
|
// builtin json alternative
|
||||||
|
json = jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
)
|
)
|
||||||
|
|
||||||
// Connect ...
|
// Connect ...
|
||||||
func Connect(cfg Config) error {
|
func Connect(cfg Config) (*Server, *JetStream, error) {
|
||||||
if cfg.URL == "" {
|
// validate
|
||||||
return errors.New("connect URL is required")
|
if err := cfg.validate(); err != nil {
|
||||||
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Connect options
|
// connect options
|
||||||
opts := make([]nats.Option, 0)
|
opts := make([]nats.Option, 0)
|
||||||
|
|
||||||
// Has authentication
|
// has authentication
|
||||||
if cfg.User != "" {
|
if cfg.User != "" {
|
||||||
opts = append(opts, nats.UserInfo(cfg.User, cfg.Password))
|
opts = append(opts, nats.UserInfo(cfg.User, cfg.Password))
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it has TLS
|
// if it has TLS
|
||||||
if cfg.TLS != nil {
|
if cfg.TLS != nil {
|
||||||
opts = append(opts, nats.ClientCert(cfg.TLS.CertFilePath, cfg.TLS.KeyFilePath))
|
opts = append(opts, nats.ClientCert(cfg.TLS.CertFilePath, cfg.TLS.KeyFilePath))
|
||||||
opts = append(opts, nats.RootCAs(cfg.TLS.RootCAFilePath))
|
opts = append(opts, nats.RootCAs(cfg.TLS.RootCAFilePath))
|
||||||
|
@ -45,32 +53,27 @@ func Connect(cfg Config) error {
|
||||||
nc, err := nats.Connect(cfg.URL, opts...)
|
nc, err := nats.Connect(cfg.URL, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("error when connecting to NATS: %s", err.Error())
|
msg := fmt.Sprintf("error when connecting to NATS: %s", err.Error())
|
||||||
return errors.New(msg)
|
return nil, nil, errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("⚡️[natsio]: connected to %s \n", cfg.URL)
|
// set client
|
||||||
|
|
||||||
// Set client
|
|
||||||
natsServer.instance = nc
|
natsServer.instance = nc
|
||||||
natsServer.Config = cfg
|
natsServer.cfg = cfg
|
||||||
|
|
||||||
// Create jet stream context
|
// create jet stream context
|
||||||
js, err := nc.JetStream(nats.PublishAsyncMaxPending(256))
|
js, err := nc.JetStream(nats.PublishAsyncMaxPending(256))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("error when create NATS JetStream: %s", err.Error())
|
msg := fmt.Sprintf("error when create NATS JetStream: %s", err.Error())
|
||||||
return errors.New(msg)
|
return nil, nil, errors.New(msg)
|
||||||
}
|
}
|
||||||
natsJetStream.instance = js
|
natsJetStream.instance = js
|
||||||
|
natsJetStream.cfg = cfg
|
||||||
|
natsJetStream.streamName = cfg.StreamName
|
||||||
|
|
||||||
return nil
|
// add stream
|
||||||
}
|
natsJetStream.addStream()
|
||||||
|
|
||||||
// GetServer ...
|
fmt.Printf("⚡️[natsio]: connected to %s \n", cfg.URL)
|
||||||
func GetServer() Server {
|
|
||||||
return natsServer
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetJetStream ...
|
return &natsServer, &natsJetStream, nil
|
||||||
func GetJetStream() JetStream {
|
|
||||||
return natsJetStream
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
package natsio
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/nats-io/nats.go"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Node include all necessary things of a client
|
||||||
|
type Node struct {
|
||||||
|
Sv Server
|
||||||
|
Js JetStream
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n Node) ServerQueueSubscribe(subjectName string, h nats.MsgHandler) {
|
||||||
|
queueName := GenerateQueueNameFromSubject(subjectName)
|
||||||
|
if _, err := n.Sv.QueueSubscribe(subjectName, queueName, h); err != nil {
|
||||||
|
fmt.Printf("[natsio.Node.ServerQueueSubscribe] error: %s \n", err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n Node) JetStreamQueueSubscribe(subjectName string, h nats.MsgHandler) {
|
||||||
|
queueName := GenerateQueueNameFromSubject(subjectName)
|
||||||
|
if err := n.Js.QueueSubscribe(subjectName, queueName, h); err != nil {
|
||||||
|
fmt.Printf("[natsio.Node.ServerQueueSubscribe] error: %s \n", err.Error())
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,6 @@ package natsio
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/nats-io/nats.go"
|
"github.com/nats-io/nats.go"
|
||||||
|
@ -13,49 +12,63 @@ import (
|
||||||
const requestTimeout = 10 * time.Second
|
const requestTimeout = 10 * time.Second
|
||||||
|
|
||||||
// Request ...
|
// Request ...
|
||||||
func (sv Server) Request(subject string, payload []byte) (*nats.Msg, error) {
|
func (s Server) Request(subject string, payload []byte) (*nats.Msg, error) {
|
||||||
timeout := requestTimeout
|
timeout := requestTimeout
|
||||||
if sv.Config.RequestTimeout > 0 {
|
if s.cfg.RequestTimeout > 0 {
|
||||||
timeout = sv.Config.RequestTimeout
|
timeout = s.cfg.RequestTimeout
|
||||||
}
|
}
|
||||||
msg, err := sv.instance.Request(subject, payload, timeout)
|
msg, err := s.instance.Request(subject, payload, timeout)
|
||||||
if errors.Is(err, nats.ErrNoResponders) {
|
if errors.Is(err, nats.ErrNoResponders) {
|
||||||
log.Printf("[NATS SERVER]: request - no responders for subject: %s", subject)
|
fmt.Printf("[natsio.Server] no responders for subject: %s \n", subject)
|
||||||
|
} else if s.cfg.Debug {
|
||||||
|
fmt.Printf("[natsio.Server] send request to subject #%s successfully \n", subject)
|
||||||
}
|
}
|
||||||
|
|
||||||
return msg, err
|
return msg, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RequestWithBindData ...
|
||||||
|
func (s Server) RequestWithBindData(subject string, payload []byte, result interface{}) error {
|
||||||
|
msg, err := s.Request(subject, payload)
|
||||||
|
if msg == nil || err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// map
|
||||||
|
return BytesToInterface(msg.Data, result)
|
||||||
|
}
|
||||||
|
|
||||||
// Reply ...
|
// Reply ...
|
||||||
func (sv Server) Reply(msg *nats.Msg, payload []byte) error {
|
func (s Server) Reply(msg *nats.Msg, payload []byte) error {
|
||||||
return sv.instance.Publish(msg.Reply, payload)
|
return s.instance.Publish(msg.Reply, payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subscribe ...
|
// Subscribe ...
|
||||||
func (sv Server) Subscribe(subject string, cb nats.MsgHandler) (*nats.Subscription, error) {
|
func (s Server) Subscribe(subject string, cb nats.MsgHandler) (*nats.Subscription, error) {
|
||||||
sub, err := sv.instance.Subscribe(subject, cb)
|
sub, err := s.instance.Subscribe(subject, cb)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS SERVER] - subscribe subject %s error: %s", subject, err.Error())
|
msg := fmt.Sprintf("[natsio.Server] subscribe subject %s error: %s", subject, err.Error())
|
||||||
return nil, errors.New(msg)
|
return nil, errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.cfg.Debug {
|
||||||
|
fmt.Printf("[natsio.Server] subscribe to subject #%s \n", subject)
|
||||||
|
}
|
||||||
|
|
||||||
return sub, nil
|
return sub, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// QueueSubscribe ...
|
// QueueSubscribe ...
|
||||||
func (sv Server) QueueSubscribe(subject, queue string, cb nats.MsgHandler) (*nats.Subscription, error) {
|
func (s Server) QueueSubscribe(subject, queue string, cb nats.MsgHandler) (*nats.Subscription, error) {
|
||||||
sub, err := sv.instance.QueueSubscribe(subject, queue, cb)
|
sub, err := s.instance.QueueSubscribe(subject, queue, cb)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg := fmt.Sprintf("[NATS SERVER] - queue subscribe subject %s, queue %s error: %s", subject, queue, err.Error())
|
msg := fmt.Sprintf("[natsio.Server] queue subscribe subject %s, queue %s error: %s", subject, queue, err.Error())
|
||||||
return nil, errors.New(msg)
|
return nil, errors.New(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.cfg.Debug {
|
||||||
|
fmt.Printf("[natsio.Server] queue subscribe to subject #%s \n", subject)
|
||||||
|
}
|
||||||
|
|
||||||
return sub, nil
|
return sub, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewJSONEncodedConn ...
|
|
||||||
func (sv Server) NewJSONEncodedConn() (*JSONEncoder, error) {
|
|
||||||
enc, err := nats.NewEncodedConn(sv.instance, nats.JSON_ENCODER)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("natsio.NewJSONEncodedConn: err %v\n", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &JSONEncoder{encConn: enc}, nil
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package natsio
|
||||||
|
|
||||||
|
type StreamUtilities struct {
|
||||||
|
Stream string
|
||||||
|
Server string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s StreamUtilities) GenerateReqrepSubject(subject string) string {
|
||||||
|
return GenerateReqrepSubject(s.Stream, s.Server, subject)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s StreamUtilities) GenerateJetStreamSubject(subject string) string {
|
||||||
|
return GenerateJetStreamSubject(s.Stream, s.Server, subject)
|
||||||
|
}
|
|
@ -1,13 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getAffiliateValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Affiliate, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Affiliate = struct {
|
|
||||||
GetTransactions string
|
|
||||||
}{
|
|
||||||
GetTransactions: getAffiliateValue("get_transactions"),
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getBankValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Bank, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Bank = struct {
|
|
||||||
GetBankById string
|
|
||||||
GetBankBranchById string
|
|
||||||
CheckBankAndBranchByID string
|
|
||||||
}{
|
|
||||||
GetBankById: getBankValue("get_bank_by_id"),
|
|
||||||
GetBankBranchById: getBankValue("get_bank_branch_by_id"),
|
|
||||||
CheckBankAndBranchByID: getBankValue("check_bank_and_brach_by_id"),
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
// getCampaignValue ...
|
|
||||||
func getCampaignValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Campaign, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Campaign ...
|
|
||||||
var Campaign = struct {
|
|
||||||
GetListCampaignTransactionAdminInfoByIDs string
|
|
||||||
GetCampaignSellerStatisticBySellerIDs string
|
|
||||||
}{
|
|
||||||
GetListCampaignTransactionAdminInfoByIDs: getCampaignValue("get_list_campaign_transaction_admin_info_by_ids"),
|
|
||||||
GetCampaignSellerStatisticBySellerIDs: getCampaignValue("get_campaign_seller_statistic_by_seller_ids"),
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getCommunicationValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Communication, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Communication = struct {
|
|
||||||
RequestHTTP string
|
|
||||||
ResponseHTTP string
|
|
||||||
}{
|
|
||||||
RequestHTTP: getCommunicationValue("request_http"),
|
|
||||||
ResponseHTTP: getCommunicationValue("response_http"),
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
var prefixes = struct {
|
|
||||||
Communication string
|
|
||||||
Order string
|
|
||||||
News string
|
|
||||||
Warehouse string
|
|
||||||
Location string
|
|
||||||
Bank string
|
|
||||||
Supplier string
|
|
||||||
Seller string
|
|
||||||
SupplierUser string
|
|
||||||
SupplierRole string
|
|
||||||
SocialPost string
|
|
||||||
Staff string
|
|
||||||
Segment string
|
|
||||||
Product string
|
|
||||||
Queue string
|
|
||||||
Campaign string
|
|
||||||
Affiliate string
|
|
||||||
Socket string
|
|
||||||
}{
|
|
||||||
Communication: "communication",
|
|
||||||
Order: "order",
|
|
||||||
News: "news",
|
|
||||||
Warehouse: "warehouse",
|
|
||||||
Location: "location",
|
|
||||||
Supplier: "supplier",
|
|
||||||
Bank: "bank",
|
|
||||||
Seller: "seller",
|
|
||||||
SupplierUser: "supplier_user",
|
|
||||||
SupplierRole: "supplier_role",
|
|
||||||
SocialPost: "social_post",
|
|
||||||
Staff: "staff",
|
|
||||||
Segment: "segment",
|
|
||||||
Product: "product",
|
|
||||||
Queue: "queue",
|
|
||||||
Campaign: "campaign",
|
|
||||||
Affiliate: "affiliate",
|
|
||||||
Socket: "socket",
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getLocationValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Location, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Location = struct {
|
|
||||||
GetLocationByCode string
|
|
||||||
GetLocationByCodeFromLocationService string
|
|
||||||
GetLocationByWardCode string
|
|
||||||
GetProvincesByCodes string
|
|
||||||
GetProvincesByCodesFromLocationService string
|
|
||||||
GetDistrictsByCodes string
|
|
||||||
GetDistrictsByCodesFromLocationService string
|
|
||||||
GetWardsByCodes string
|
|
||||||
GetWardsByCodesFromLocationService string
|
|
||||||
GetProvinceByCondition string
|
|
||||||
GetProvincesByCondition string
|
|
||||||
GetDistrictByCondition string
|
|
||||||
GetDistrictsByCondition string
|
|
||||||
GetWardByCondition string
|
|
||||||
GetWardsByCondition string
|
|
||||||
CountProvinceByCondition string
|
|
||||||
CountDistrictByCondition string
|
|
||||||
CountWardByCondition string
|
|
||||||
ProvinceDistinctWithField string
|
|
||||||
}{
|
|
||||||
GetLocationByCode: getLocationValue("get_location_warehouse"),
|
|
||||||
GetLocationByCodeFromLocationService: getLocationValue("get_location_warehouse_from_location_service"),
|
|
||||||
GetLocationByWardCode: getLocationValue("get_location_by_ward_code"),
|
|
||||||
GetProvincesByCodes: getLocationValue("get_provinces_by_codes"),
|
|
||||||
GetProvincesByCodesFromLocationService: getLocationValue("get_provinces_by_codes_from_location_service"),
|
|
||||||
GetDistrictsByCodes: getLocationValue("get_districts_by_codes"),
|
|
||||||
GetDistrictsByCodesFromLocationService: getLocationValue("get_districts_by_codes_from_location_service"),
|
|
||||||
GetWardsByCodes: getLocationValue("get_wards_by_codes"),
|
|
||||||
GetWardsByCodesFromLocationService: getLocationValue("get_wards_by_codes_from_location_service"),
|
|
||||||
GetProvinceByCondition: getLocationValue("get_province_by_condition"),
|
|
||||||
GetProvincesByCondition: getLocationValue("get_provinces_by_condition"),
|
|
||||||
GetDistrictByCondition: getLocationValue("get_district_by_condition"),
|
|
||||||
GetDistrictsByCondition: getLocationValue("get_districts_byCondition"),
|
|
||||||
GetWardByCondition: getLocationValue("get_ward_by_condition"),
|
|
||||||
GetWardsByCondition: getLocationValue("get_wards_by_condition"),
|
|
||||||
CountProvinceByCondition: getLocationValue("count_province_by_condition"),
|
|
||||||
CountDistrictByCondition: getLocationValue("count_district_by_condition"),
|
|
||||||
CountWardByCondition: getLocationValue("count_ward_by_condition"),
|
|
||||||
ProvinceDistinctWithField: getLocationValue("province_distinct_with_field"),
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getNewsValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.News, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var News = struct {
|
|
||||||
GetProductNoticesByInventory string
|
|
||||||
}{
|
|
||||||
GetProductNoticesByInventory: getNewsValue("get_product_notices_by_inventory"),
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getOrderValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Order, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Order = struct {
|
|
||||||
UpdateORStatus string
|
|
||||||
GetUserTotalWarningOrders string
|
|
||||||
CancelDelivery string
|
|
||||||
ChangeDeliveryStatus string
|
|
||||||
UpdateLogisticInfoFailed string
|
|
||||||
ORNotUpdateStatus string
|
|
||||||
GetSupplierOrders string
|
|
||||||
}{
|
|
||||||
UpdateORStatus: getOrderValue("update_outbound_request_status"),
|
|
||||||
GetUserTotalWarningOrders: getOrderValue("get_user_total_warning_orders"),
|
|
||||||
CancelDelivery: getOrderValue("cancel_delivery"),
|
|
||||||
ChangeDeliveryStatus: getOrderValue("change_delivery_status"),
|
|
||||||
UpdateLogisticInfoFailed: getOrderValue("update_logistic_info_failed"),
|
|
||||||
ORNotUpdateStatus: getOrderValue("outbound_request_not_update_status"),
|
|
||||||
GetSupplierOrders: getOrderValue("get_supplier_orders"),
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
// getSegmentValue ...
|
|
||||||
func getProductValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Product, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Product = struct {
|
|
||||||
ApplyRequest string
|
|
||||||
CreateRequestStep string
|
|
||||||
ProcessApplyRequest string
|
|
||||||
RequestChangeStatus string
|
|
||||||
WebhookStockUpdate string // WebhookStockUpdate Kiotviet queue
|
|
||||||
OPWebhookStockUpdate string // OPWebhookStockUpdate Onpoint queue
|
|
||||||
OrderPaymentBankTransferWebhookCheckAndUpdateStatus string
|
|
||||||
}{
|
|
||||||
ApplyRequest: getProductValue("apply_request"),
|
|
||||||
CreateRequestStep: getProductValue("create_request_step"),
|
|
||||||
ProcessApplyRequest: getProductValue("process_apply_request"),
|
|
||||||
RequestChangeStatus: getProductValue("request_change_status"),
|
|
||||||
WebhookStockUpdate: getProductValue("webhook_stock_update"),
|
|
||||||
OPWebhookStockUpdate: getProductValue("op_webhook_stock_update"),
|
|
||||||
OrderPaymentBankTransferWebhookCheckAndUpdateStatus: getProductValue("order_payment_bank_transfer_webhook_check_and_update_status"),
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getQueueValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Queue, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Queue = struct {
|
|
||||||
ScheduleTask string
|
|
||||||
}{
|
|
||||||
ScheduleTask: getQueueValue("schedule_task"),
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
// getSegmentValue ...
|
|
||||||
func getSegmentValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Segment, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Segment ...
|
|
||||||
var Segment = struct {
|
|
||||||
GetListSegmentInfo string
|
|
||||||
}{
|
|
||||||
GetListSegmentInfo: getSegmentValue("get_list_segment_info"),
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getSellerValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Seller, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Seller ...
|
|
||||||
var Seller = struct {
|
|
||||||
GetSellerInfoByID string
|
|
||||||
GetListSellerInfoByIDs string
|
|
||||||
}{
|
|
||||||
GetSellerInfoByID: getSellerValue("get_seller_info_by_id"),
|
|
||||||
GetListSellerInfoByIDs: getSellerValue("get_list_seller_info_by_ids"),
|
|
||||||
}
|
|
||||||
|
|
||||||
// SupportChat ...
|
|
||||||
var SupportChat = struct {
|
|
||||||
GetListSellerInfoSupportChatByIDs string
|
|
||||||
}{
|
|
||||||
GetListSellerInfoSupportChatByIDs: "SELLY_CHAT.REQUEST.SELLER_INFO",
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
// getSocialPostValue ...
|
|
||||||
func getSocialPostValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.SocialPost, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SocialPost ...
|
|
||||||
var SocialPost = struct {
|
|
||||||
GetListSocialPostAppInfoByIDs string
|
|
||||||
GetBriefInfoSocialPostAdminByIDs string
|
|
||||||
}{
|
|
||||||
GetListSocialPostAppInfoByIDs: getSocialPostValue("get_list_social_post_app_info_by_ids"),
|
|
||||||
GetBriefInfoSocialPostAdminByIDs: getSocialPostValue("get_brief_info_social_post_admin_by_ids"),
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getSocketValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Socket, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Socket ...
|
|
||||||
var Socket = struct {
|
|
||||||
EmitEventReward string
|
|
||||||
EmitEventToUser string
|
|
||||||
}{
|
|
||||||
EmitEventReward: getSocketValue("emit_event_reward"),
|
|
||||||
EmitEventToUser: "send_message_to_socket",
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getStaffValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Staff, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Staff ...
|
|
||||||
var Staff = struct {
|
|
||||||
GetListStaffInfo string
|
|
||||||
}{
|
|
||||||
GetListStaffInfo: getStaffValue("get_list_staff_info"),
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getSupplierValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Supplier, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Supplier = struct {
|
|
||||||
GetListSupplierInfo string
|
|
||||||
GetDetailSupplierInfo string
|
|
||||||
GetSupplierContractBySupplierID string
|
|
||||||
FindAll string
|
|
||||||
FindAllOld string
|
|
||||||
Count string
|
|
||||||
}{
|
|
||||||
GetListSupplierInfo: getSupplierValue("get_list_supplier_info"),
|
|
||||||
GetDetailSupplierInfo: getSupplierValue("get_detail_supplier_info"),
|
|
||||||
GetSupplierContractBySupplierID: getSupplierValue("get_supplier_contract_by_supplier_id"),
|
|
||||||
FindAll: getSupplierValue("find_all"),
|
|
||||||
FindAllOld: getSupplierValue("find_all_old"),
|
|
||||||
Count: getSupplierValue("count"),
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
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"),
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func getSupplierUserValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.SupplierUser, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var SupplierUser = struct {
|
|
||||||
// Users
|
|
||||||
CreateOwner string
|
|
||||||
UpdateOwner string
|
|
||||||
CreateStaff string
|
|
||||||
UpdateStaff string
|
|
||||||
UpdateStatus string
|
|
||||||
ResetPassword string
|
|
||||||
CheckTokenSupplierUser string
|
|
||||||
}{
|
|
||||||
// Users
|
|
||||||
CreateOwner: getSupplierUserValue("create_owner"),
|
|
||||||
UpdateOwner: getSupplierUserValue("update_owner"),
|
|
||||||
CreateStaff: getSupplierUserValue("create_staff"),
|
|
||||||
UpdateStaff: getSupplierUserValue("update_staff"),
|
|
||||||
UpdateStatus: getSupplierUserValue("update_status"),
|
|
||||||
ResetPassword: getSupplierUserValue("reset_password"),
|
|
||||||
CheckTokenSupplierUser: getSupplierUserValue("check_token_supplier_user"),
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
package subject
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
func getWarehouseValue(val string) string {
|
|
||||||
return fmt.Sprintf("%s.%s", prefixes.Warehouse, val)
|
|
||||||
}
|
|
||||||
|
|
||||||
var Warehouse = struct {
|
|
||||||
CreateWarehouseIntoServiceSupplier string
|
|
||||||
UpdateWarehouseIntoServiceSupplier string
|
|
||||||
CreateOutboundRequest string
|
|
||||||
UpdateOutboundRequestLogistic string
|
|
||||||
CancelOutboundRequest string
|
|
||||||
GetConfiguration string
|
|
||||||
SyncORStatus string
|
|
||||||
WebhookTNC string
|
|
||||||
WebhookGlobalCare string
|
|
||||||
WebhookOnPoint string
|
|
||||||
WebhookViettelFFM string
|
|
||||||
FindOne string
|
|
||||||
FindByCondition string
|
|
||||||
Distinct string
|
|
||||||
Count string
|
|
||||||
AfterUpdateWarehouse string
|
|
||||||
AfterCreateWarehouse string
|
|
||||||
UpdateIsClosedSupplier string
|
|
||||||
GetWarehouses string
|
|
||||||
UpdateORDeliveryStatus string
|
|
||||||
UpdateStatusWarehousePendingInactive string
|
|
||||||
UpdateIsSellyMall string
|
|
||||||
UpdateWarehouseConfig string
|
|
||||||
BulkWriteWarehouseConfig string
|
|
||||||
GetListWarehouseConfig string
|
|
||||||
}{
|
|
||||||
CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"),
|
|
||||||
UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"),
|
|
||||||
AfterCreateWarehouse: getWarehouseValue("after_create_warehouse"),
|
|
||||||
AfterUpdateWarehouse: getWarehouseValue("after_update_warehouse"),
|
|
||||||
CreateOutboundRequest: getWarehouseValue("create_outbound_request"),
|
|
||||||
UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"),
|
|
||||||
CancelOutboundRequest: getWarehouseValue("cancel_outbound_request"),
|
|
||||||
GetConfiguration: getWarehouseValue("get_configuration"),
|
|
||||||
SyncORStatus: getWarehouseValue("sync_or_status"),
|
|
||||||
WebhookTNC: getWarehouseValue("webhook_tnc"),
|
|
||||||
WebhookGlobalCare: getWarehouseValue("webhook_global_care"),
|
|
||||||
WebhookOnPoint: getWarehouseValue("webhook_on_point"),
|
|
||||||
WebhookViettelFFM: getWarehouseValue("webhook_viettel_ffm"),
|
|
||||||
FindOne: getWarehouseValue("find_one"),
|
|
||||||
FindByCondition: getWarehouseValue("find_all_by_condition"),
|
|
||||||
Distinct: getWarehouseValue("distinct"),
|
|
||||||
Count: getWarehouseValue("count"),
|
|
||||||
UpdateIsClosedSupplier: getWarehouseValue("update_is_closed_supplier"),
|
|
||||||
GetWarehouses: getWarehouseValue("get_warehouses"),
|
|
||||||
UpdateORDeliveryStatus: getWarehouseValue("update_or_delivery_status"),
|
|
||||||
UpdateStatusWarehousePendingInactive: getWarehouseValue("update_status_warehouse_pending_inactive"),
|
|
||||||
UpdateIsSellyMall: getWarehouseValue("update_is_selly_mall"),
|
|
||||||
UpdateWarehouseConfig: getWarehouseValue("update_warehouse_config"),
|
|
||||||
BulkWriteWarehouseConfig: getWarehouseValue("bulk_write_warehouse_config"),
|
|
||||||
GetListWarehouseConfig: getWarehouseValue("get_list_warehouse_config"),
|
|
||||||
}
|
|
49
utils.go
49
utils.go
|
@ -2,7 +2,9 @@ package natsio
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/nats-io/nats.go"
|
||||||
"github.com/thoas/go-funk"
|
"github.com/thoas/go-funk"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -15,16 +17,43 @@ func mergeAndUniqueArrayStrings(arr1, arr2 []string) []string {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// generateSubjectNames ...
|
|
||||||
func generateSubjectNames(streamName string, subjects []string) []string {
|
|
||||||
var result = make([]string, 0)
|
|
||||||
for _, subject := range subjects {
|
|
||||||
name := combineStreamAndSubjectName(streamName, subject)
|
|
||||||
result = append(result, name)
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func combineStreamAndSubjectName(stream, subject string) string {
|
func combineStreamAndSubjectName(stream, subject string) string {
|
||||||
return fmt.Sprintf("%s.%s", stream, subject)
|
return fmt.Sprintf("%s.%s", stream, subject)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GenerateJetStreamSubject ...
|
||||||
|
func GenerateJetStreamSubject(stream, server, subject string) string {
|
||||||
|
return fmt.Sprintf("%s.jetstream.%s.%s", stream, server, subject)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateReqrepSubject ...
|
||||||
|
func GenerateReqrepSubject(stream, server, subject string) string {
|
||||||
|
return fmt.Sprintf("%s.reqrep.%s.%s", stream, server, subject)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GenerateQueueNameFromSubject(subject string) string {
|
||||||
|
return strings.ReplaceAll(subject, ".", "_")
|
||||||
|
}
|
||||||
|
|
||||||
|
// InterfaceToBytes ...
|
||||||
|
func InterfaceToBytes(data interface{}) []byte {
|
||||||
|
b, err := json.Marshal(data)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("[natsio.InterfaceToBytes] error: %v with data: %v\n", err, data)
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func BytesToInterface(b []byte, dest interface{}) error {
|
||||||
|
err := json.Unmarshal(b, &dest)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("[natsio.BytesToInterface] error: %v with data: %s\n", err, string(b))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func MsgRespond(msg *nats.Msg, data interface{}) {
|
||||||
|
if err := msg.Respond(InterfaceToBytes(data)); err != nil {
|
||||||
|
fmt.Printf("[natsio.MsgRespond] error when response msg %s", msg.Reply)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue