diff --git a/client/warehouse_dao.go b/client/warehouse_dao.go index 56c046f..80ba7ff 100644 --- a/client/warehouse_dao.go +++ b/client/warehouse_dao.go @@ -3,6 +3,7 @@ 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" @@ -83,3 +84,39 @@ func (w Warehouse) FindByCondition(p model.FindWithCondition) ([]*model.Warehous } 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 +} diff --git a/model/common_request.go b/model/common_request.go index 447ae57..9a12285 100644 --- a/model/common_request.go +++ b/model/common_request.go @@ -43,3 +43,14 @@ type RequestCondition struct { 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 +} diff --git a/model/communication_request.go b/model/communication_request.go index eb64ef2..23b1b50 100644 --- a/model/communication_request.go +++ b/model/communication_request.go @@ -5,6 +5,9 @@ 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 ... diff --git a/subject/product.go b/subject/product.go index 2acfadc..39c5a2b 100644 --- a/subject/product.go +++ b/subject/product.go @@ -12,9 +12,11 @@ var Product = struct { CreateRequestStep string ProcessApplyRequest string RequestChangeStatus string + WebhookStockUpdate 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"), } diff --git a/subject/warehouse.go b/subject/warehouse.go index 9131f07..0d9a218 100644 --- a/subject/warehouse.go +++ b/subject/warehouse.go @@ -30,6 +30,8 @@ var Warehouse = struct { UpdateORDeliveryStatus string UpdateStatusWarehousePendingInactive string UpdateIsSellyMall string + UpdateWarehouseConfig string + BulkWriteWarehouseConfig string }{ CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"), UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"), @@ -52,4 +54,6 @@ var Warehouse = struct { 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"), }