Intergrate model for supplier #15
|
@ -37,7 +37,23 @@ func (o Order) UpdateORStatus(p model.OrderUpdateORStatus) error {
|
|||
|
||||
// CancelDelivery ...
|
||||
func (o Order) CancelDelivery(p model.OrderCancelDelivery) error {
|
||||
msg, err := natsio.GetServer().Request(subject.Order.UpdateORStatus, toBytes(p))
|
||||
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
|
||||
}
|
||||
|
|
|
@ -17,7 +17,28 @@ func GetSupplier() Supplier {
|
|||
return Supplier{}
|
||||
}
|
||||
|
||||
func (s Supplier) FindAll(supplierID model.GetSupplierRequest) (*model.SupplierAll, error) {
|
||||
func (s Supplier) GetSupplierInfo(supplierID model.GetSupplierRequest) (*model.ResponseSupplierInfo, error) {
|
||||
msg, err := natsio.GetServer().Request(subject.Supplier.GetSupplierInfo, toBytes(supplierID))
|
||||
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) FindAll(supplierID model.SupplierRequestPayload) (*model.SupplierAll, error) {
|
||||
msg, err := natsio.GetServer().Request(subject.Supplier.FindAll, toBytes(supplierID))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -2,6 +2,7 @@ package client
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"log"
|
||||
)
|
||||
|
||||
|
@ -12,3 +13,9 @@ func toBytes(data interface{}) []byte {
|
|||
}
|
||||
return b
|
||||
}
|
||||
|
||||
// bsonToBytes ...
|
||||
func bsonToBytes(data interface{}) []byte {
|
||||
b, _ := bson.Marshal(data)
|
||||
return b
|
||||
}
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
package client
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"github.com/Selly-Modules/natsio"
|
||||
"github.com/Selly-Modules/natsio/model"
|
||||
"github.com/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
|
||||
}
|
2
go.sum
2
go.sum
|
@ -24,6 +24,8 @@ github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e
|
|||
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/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8=
|
||||
github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
||||
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/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
||||
|
|
|
@ -26,3 +26,8 @@ func (e JSONEncoder) Subscribe(subject string, cb nats.Handler) (*nats.Subscript
|
|||
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,22 @@
|
|||
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"`
|
||||
}
|
|
@ -10,16 +10,19 @@ type ResponseLocationAddress struct {
|
|||
type LocationProvince struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Code int `json:"code"`
|
||||
}
|
||||
|
||||
// LocationDistrict ...
|
||||
type LocationDistrict struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Code int `json:"code"`
|
||||
}
|
||||
|
||||
// LocationWard ...
|
||||
type LocationWard struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Code int `json:"code"`
|
||||
}
|
||||
|
|
|
@ -2,13 +2,21 @@ package model
|
|||
|
||||
// OrderUpdateORStatus ...
|
||||
type OrderUpdateORStatus struct {
|
||||
OrderCode string `json:"orderCode"`
|
||||
ORCode string `json:"orCode"`
|
||||
Status string `json:"status"`
|
||||
Reason string `json:"reason"`
|
||||
OrderCode string `json:"orderCode"`
|
||||
ORCode string `json:"orCode"`
|
||||
Status string `json:"status"`
|
||||
DeliveryStatus string `json:"deliveryStatus"`
|
||||
Reason string `json:"reason"`
|
||||
}
|
||||
|
||||
// OrderCancelDelivery ...
|
||||
type OrderCancelDelivery struct {
|
||||
OrderID string `json:"orderId"`
|
||||
}
|
||||
|
||||
// OrderChangeDeliveryStatus ...
|
||||
type OrderChangeDeliveryStatus struct {
|
||||
OrderID string `json:"orderId"`
|
||||
DeliveryStatus string `json:"deliveryStatus"`
|
||||
ActionBy ActionBy `json:"actionBy"`
|
||||
}
|
||||
|
|
|
@ -1,7 +1,20 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
// GetSupplierRequest ...
|
||||
type GetSupplierRequest struct {
|
||||
ListID []primitive.ObjectID `json:"listID"`
|
||||
}
|
||||
|
||||
type GetSupplierContractRequest struct {
|
||||
SupplierID primitive.ObjectID `json:"supplierID"`
|
||||
}
|
||||
|
||||
// SupplierRequestPayload ...
|
||||
type SupplierRequestPayload struct {
|
||||
Limit int
|
||||
Page int
|
||||
Keyword string
|
||||
|
|
|
@ -1,5 +1,19 @@
|
|||
package model
|
||||
|
||||
// ResponseSupplierInfo ...
|
||||
type ResponseSupplierInfo struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// 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"`
|
||||
|
|
|
@ -12,6 +12,19 @@ type OutboundRequestPayload struct {
|
|||
TPLCode string `json:"tplCode"`
|
||||
Customer CustomerInfo `json:"customer"`
|
||||
Items []OutboundRequestItem `json:"items"`
|
||||
Insurance *InsuranceOpts
|
||||
}
|
||||
|
||||
// InsuranceOpts ...
|
||||
type InsuranceOpts struct {
|
||||
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"`
|
||||
}
|
||||
|
||||
// OutboundRequestItem ...
|
||||
|
@ -25,6 +38,7 @@ type OutboundRequestItem struct {
|
|||
type CustomerInfo struct {
|
||||
Name string `json:"name"`
|
||||
PhoneNumber string `json:"phoneNumber"`
|
||||
Email string `json:"email"`
|
||||
Address AddressDetail `json:"address"`
|
||||
}
|
||||
|
||||
|
@ -49,3 +63,9 @@ type CancelOutboundRequest struct {
|
|||
ORCode string `json:"orCode"`
|
||||
Note string `json:"note"`
|
||||
}
|
||||
|
||||
// SyncORStatusRequest ...
|
||||
type SyncORStatusRequest struct {
|
||||
ORCode string `json:"orCode"`
|
||||
OrderCode string `json:"orderCode"`
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// OutboundRequestResponse ...
|
||||
type OutboundRequestResponse struct {
|
||||
// System code
|
||||
|
@ -47,9 +49,9 @@ type WarehousePaymentMethod struct {
|
|||
// WarehouseDelivery ...
|
||||
type WarehouseDelivery struct {
|
||||
DeliveryMethods []string `json:"deliveryMethods"`
|
||||
PriorityServiceCodes []string `json:"priorityDeliveryServiceCodes"`
|
||||
EnabledSources []int `json:"enabledDeliverySources"`
|
||||
Types []string `json:"type"`
|
||||
PriorityServiceCodes []string `json:"priorityServiceCodes"`
|
||||
EnabledSources []int `json:"enabledSources"`
|
||||
Types []string `json:"types"`
|
||||
}
|
||||
|
||||
// WarehousePartner ...
|
||||
|
@ -59,3 +61,55 @@ type WarehousePartner struct {
|
|||
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"`
|
||||
}
|
||||
|
||||
// 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"`
|
||||
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"`
|
||||
}
|
||||
|
|
|
@ -18,7 +18,11 @@ func (sv Server) Request(subject string, payload []byte) (*nats.Msg, error) {
|
|||
if sv.Config.RequestTimeout > 0 {
|
||||
timeout = sv.Config.RequestTimeout
|
||||
}
|
||||
return sv.instance.Request(subject, payload, timeout)
|
||||
msg, err := sv.instance.Request(subject, payload, timeout)
|
||||
if errors.Is(err, nats.ErrNoResponders) {
|
||||
log.Printf("[NATS SERVER]: request - no responders for subject: %s", subject)
|
||||
}
|
||||
return msg, err
|
||||
}
|
||||
|
||||
// Reply ...
|
||||
|
|
|
@ -7,13 +7,9 @@ func getCommunicationValue(val string) string {
|
|||
}
|
||||
|
||||
var Communication = struct {
|
||||
RequestHTTP string
|
||||
ResponseHTTP string
|
||||
WebhookTNC string
|
||||
WebhookGlobalCare string
|
||||
RequestHTTP string
|
||||
ResponseHTTP string
|
||||
}{
|
||||
RequestHTTP: getCommunicationValue("request_http"),
|
||||
ResponseHTTP: getCommunicationValue("response_http"),
|
||||
WebhookTNC: getCommunicationValue("webhook_tnc"),
|
||||
WebhookGlobalCare: getCommunicationValue("webhook_global_care"),
|
||||
RequestHTTP: getCommunicationValue("request_http"),
|
||||
ResponseHTTP: getCommunicationValue("response_http"),
|
||||
}
|
||||
|
|
|
@ -7,11 +7,11 @@ func getOrderValue(val string) string {
|
|||
}
|
||||
|
||||
var Order = struct {
|
||||
UpdateORStatus string
|
||||
CancelDelivery string
|
||||
WebhookTNC string
|
||||
WebhookGlobalCare string
|
||||
UpdateORStatus string
|
||||
CancelDelivery string
|
||||
ChangeDeliveryStatus string
|
||||
}{
|
||||
UpdateORStatus: getOrderValue("update_outbound_request_status"),
|
||||
CancelDelivery: getOrderValue("cancel_delivery"),
|
||||
UpdateORStatus: getOrderValue("update_outbound_request_status"),
|
||||
CancelDelivery: getOrderValue("cancel_delivery"),
|
||||
ChangeDeliveryStatus: getOrderValue("change_delivery_status"),
|
||||
}
|
||||
|
|
|
@ -7,7 +7,13 @@ func getSupplierValue(val string) string {
|
|||
}
|
||||
|
||||
var Supplier = struct {
|
||||
FindAll string
|
||||
GetSupplierInfo string
|
||||
GetListSupplierInfo string
|
||||
GetSupplierContractBySupplierID string
|
||||
FindAll string
|
||||
}{
|
||||
FindAll: getSupplierValue("find_all"),
|
||||
GetSupplierInfo: getSupplierValue("get_supplier_info"),
|
||||
GetListSupplierInfo: getSupplierValue("get_list_supplier_info"),
|
||||
GetSupplierContractBySupplierID: getSupplierValue("get_supplier_contract_by_supplier_id"),
|
||||
FindAll: getSupplierValue("find_all"),
|
||||
}
|
||||
|
|
|
@ -11,9 +11,23 @@ var Warehouse = struct {
|
|||
UpdateOutboundRequestLogistic string
|
||||
CancelOutboundRequest string
|
||||
GetConfiguration string
|
||||
SyncORStatus string
|
||||
WebhookTNC string
|
||||
WebhookGlobalCare string
|
||||
FindOne string
|
||||
FindByCondition string
|
||||
Distinct string
|
||||
Count string
|
||||
}{
|
||||
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"),
|
||||
FindOne: getWarehouseValue("find_one"),
|
||||
FindByCondition: getWarehouseValue("find_all_by_condition"),
|
||||
Distinct: getWarehouseValue("distinct"),
|
||||
Count: getWarehouseValue("count"),
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue