From 067db844897e007e19e9f94336820d30deccee0a Mon Sep 17 00:00:00 2001 From: buiphuan0211 <57066954+buiphuan0211@users.noreply.github.com> Date: Fri, 23 Dec 2022 03:32:15 +0700 Subject: [PATCH] add get,create, update supplier-holiday --- client/warehouse.go | 63 +++++++++++++++++++++++++++++++++++++ model/warehouse_request.go | 25 +++++++++++++++ model/warehouse_response.go | 17 ++++++++++ subject/warehouse.go | 6 ++++ 4 files changed, 111 insertions(+) diff --git a/client/warehouse.go b/client/warehouse.go index fb391ca..664df43 100644 --- a/client/warehouse.go +++ b/client/warehouse.go @@ -182,3 +182,66 @@ func (w Warehouse) UpdateORDeliveryStatus(p model.WarehouseORUpdateDeliveryStatu } return nil } + +// CreateSupplierHoliday ... +func (w Warehouse) CreateSupplierHoliday(p model.SupplierHolidayCreatePayload) error { + msg, err := natsio.GetServer().Request(subject.Warehouse.CreateSupplierHoliday, 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: create_supplier_holiday %v", err) + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} + +// UpdateSupplierHoliday ... +func (w Warehouse) UpdateSupplierHoliday(p model.SupplierHolidayUpdatePayload) error { + msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateSupplierHoliday, 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: create_supplier_holiday %v", err) + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} + +// GetSupplierHoliday ... +func (w Warehouse) GetSupplierHoliday(p model.GetSupplierHolidayRequest) (*model.ResponseSupplierHoliday, error) { + msg, err := natsio.GetServer().Request(subject.Warehouse.GetSupplierHoliday, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.ResponseSupplierHoliday `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 +} diff --git a/model/warehouse_request.go b/model/warehouse_request.go index b6cecb1..c2b267a 100644 --- a/model/warehouse_request.go +++ b/model/warehouse_request.go @@ -113,3 +113,28 @@ type WarehouseORUpdateDeliveryStatus struct { OrderID string `json:"orderId"` DeliveryStatus string `json:"deliveryStatus"` } + +// SupplierHolidayCreatePayload ... +type SupplierHolidayCreatePayload struct { + Supplier string `json:"supplier"` + Title string `json:"title"` + From string `json:"from"` + To string `json:"to"` + Warehouses []string `json:"warehouses"` + IsApplyAll bool `json:"isApplyAll"` +} + +// SupplierHolidayUpdatePayload ... +type SupplierHolidayUpdatePayload struct { + Supplier string `json:"supplier"` + Title string `json:"title"` + From string `json:"from"` + To string `json:"to"` + Warehouses []string `json:"warehouses"` + IsApplyAll bool `json:"isApplyAll"` +} + +// GetSupplierHolidayRequest ... +type GetSupplierHolidayRequest struct { + Conditions interface{} `json:"conditions"` +} diff --git a/model/warehouse_response.go b/model/warehouse_response.go index 6359ae3..e5d556b 100644 --- a/model/warehouse_response.go +++ b/model/warehouse_response.go @@ -172,3 +172,20 @@ type GetWarehousesResponse struct { Limit int64 `json:"limit"` List []WarehouseInfo `json:"list"` } + +// ResponseWarehouseShort ... +type ResponseWarehouseShort struct { + ID string `json:"_id"` + Name string `json:"name"` +} + +// ResponseSupplierHoliday ... +type ResponseSupplierHoliday struct { + Title string `json:"title"` + From string `json:"from"` + To string `json:"to"` + Status string `json:"status"` + Reason string `json:"reason"` + IsApplyAll bool `json:"isApplyAll"` + Warehouses []ResponseWarehouseShort `json:"warehouses"` +} diff --git a/subject/warehouse.go b/subject/warehouse.go index bb184b5..51be4c7 100644 --- a/subject/warehouse.go +++ b/subject/warehouse.go @@ -26,6 +26,9 @@ var Warehouse = struct { UpdateIsClosedSupplier string GetWarehouses string UpdateORDeliveryStatus string + CreateSupplierHoliday string + UpdateSupplierHoliday string + GetSupplierHoliday string }{ CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"), UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"), @@ -46,4 +49,7 @@ var Warehouse = struct { UpdateIsClosedSupplier: getWarehouseValue("update_is_closed_supplier"), GetWarehouses: getWarehouseValue("get_warehouses"), UpdateORDeliveryStatus: getWarehouseValue("update_or_delivery_status"), + CreateSupplierHoliday: getWarehouseValue("create_supplier_holiday"), + UpdateSupplierHoliday: getWarehouseValue("update_supplier_holiday"), + GetSupplierHoliday: getWarehouseValue("get_supplier_holiday"), }