mirror of
https://github.com/retailcrm/api-client-go.git
synced 2024-11-22 12:56:04 +03:00
add methods for costs, customFields, customDictionaries
This commit is contained in:
parent
93bb2f5e26
commit
a2fdb06219
635
v5/client.go
635
v5/client.go
@ -2062,3 +2062,638 @@ func (c *Client) StaticticsUpdate() (SuccessfulResponse, int, errs.Failure) {
|
|||||||
|
|
||||||
return resp, status, err
|
return resp, status, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Getting of the cost list, adequate for the given filter
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.Costs(CostsRequest{
|
||||||
|
// Filter: CostsFilter{
|
||||||
|
// Ids: []string{"1","2","3"},
|
||||||
|
// MinSumm: "1000"
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// for _, value := range data.Costs {
|
||||||
|
// fmt.Printf("%v\n", value.Summ)
|
||||||
|
// }
|
||||||
|
func (c *Client) Costs(costs CostsRequest) (CostsResponse, int, ErrorResponse) {
|
||||||
|
var resp CostsResponse
|
||||||
|
|
||||||
|
params, _ := query.Values(costs)
|
||||||
|
|
||||||
|
data, status, err := c.GetRequest(fmt.Sprintf("/costs?%s", params.Encode()))
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Creation of the cost
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CostCreate(
|
||||||
|
// v5.CostRecord{
|
||||||
|
// DateFrom: "2012-12-12",
|
||||||
|
// DateTo: "2012-12-12",
|
||||||
|
// Summ: 12,
|
||||||
|
// CostItem: "calculation-of-costs",
|
||||||
|
// Order: Order{
|
||||||
|
// Number: "1"
|
||||||
|
// },
|
||||||
|
// Sites: []string{"store"},
|
||||||
|
// },
|
||||||
|
// "store"
|
||||||
|
// )
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.ID)
|
||||||
|
// }
|
||||||
|
func (c *Client) CostCreate(cost CostRecord, site ...string) (CreateResponse, int, ErrorResponse) {
|
||||||
|
var resp CreateResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&cost)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"cost": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
fillSite(&p, site)
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest("/costs/create", p)
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method allows to remove batch up to 50 costs.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.client.CostsDelete([]int{1, 2, 3, 48, 49, 50})
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("Not removed costs: %v", data.NotRemovedIds)
|
||||||
|
// }
|
||||||
|
func (c *Client) CostsDelete(ids []int) (CostsDeleteResponse, int, ErrorResponse) {
|
||||||
|
var resp CostsDeleteResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&ids)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"ids": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest("/costs/delete", p)
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method allows to upload as packet up to 50 costs.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CostCreate([]v5.CostRecord{
|
||||||
|
// {
|
||||||
|
// DateFrom: "2012-12-12",
|
||||||
|
// DateTo: "2012-12-12",
|
||||||
|
// Summ: 12,
|
||||||
|
// CostItem: "calculation-of-costs",
|
||||||
|
// Order: Order{
|
||||||
|
// Number: "1"
|
||||||
|
// },
|
||||||
|
// Sites: []string{"store"},
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// DateFrom: "2012-12-13",
|
||||||
|
// DateTo: "2012-12-13",
|
||||||
|
// Summ: 13,
|
||||||
|
// CostItem: "seo",
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("Uploaded costs: %v", data.UploadedCosts)
|
||||||
|
// }
|
||||||
|
func (c *Client) CostsUpload(cost []CostRecord) (CostsUploadResponse, int, ErrorResponse) {
|
||||||
|
var resp CostsUploadResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&cost)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"costs": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest("/costs/upload", p)
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getting of cost information
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.Cost(1)
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.Cost)
|
||||||
|
// }
|
||||||
|
func (c *Client) Cost(id int) (CostResponse, int, ErrorResponse) {
|
||||||
|
var resp CostResponse
|
||||||
|
|
||||||
|
data, status, err := c.GetRequest(fmt.Sprintf("/costs/%d", id))
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cost removing
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CostDelete(1)
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
func (c *Client) CostDelete(id int) (SuccessfulResponse, int, ErrorResponse) {
|
||||||
|
var resp SuccessfulResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&id)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"costs": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest(fmt.Sprintf("/costs/%d/delete", id), p)
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cost editing
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CostEdit(1, v5.Cost{
|
||||||
|
// DateFrom: "2012-12-12",
|
||||||
|
// DateTo: "2018-12-13",
|
||||||
|
// Summ: 321,
|
||||||
|
// CostItem: "seo",
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.Id)
|
||||||
|
// }
|
||||||
|
func (c *Client) CostEdit(id int, cost CostRecord, site ...string) (CreateResponse, int, ErrorResponse) {
|
||||||
|
var resp CreateResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&cost)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"cost": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
fillSite(&p, site)
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest(fmt.Sprintf("/costs/%d/edit", id), p)
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getting the list of custom fields
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomFields(v5.CustomFieldsRequest{
|
||||||
|
// Type: "string",
|
||||||
|
// Entity: "customer",
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// for _, value := range data.CustomFields {
|
||||||
|
// fmt.Printf("%v\n", value)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomFields(customFields CustomFieldsRequest) (CustomFieldsResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomFieldsResponse
|
||||||
|
|
||||||
|
params, _ := query.Values(customFields)
|
||||||
|
|
||||||
|
data, status, err := c.GetRequest(fmt.Sprintf("/custom-fields?%s", params.Encode()))
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getting the list of custom directory
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomDictionaries(v5.CustomDictionariesRequest{
|
||||||
|
// Filter: v5.CustomDictionariesFilter{
|
||||||
|
// Name: "Dictionary-1",
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// for _, value := range data.CustomDictionaries {
|
||||||
|
// fmt.Printf("%v\n", value.Elements)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomDictionaries(customDictionaries CustomDictionariesRequest) (CustomDictionariesResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomDictionariesResponse
|
||||||
|
|
||||||
|
params, _ := query.Values(customDictionaries)
|
||||||
|
|
||||||
|
data, status, err := c.GetRequest(fmt.Sprintf("/custom-fields/dictionaries?%s", params.Encode()))
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Directory fields creation
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomDictionariesCreate(v5.CustomDictionary{
|
||||||
|
// Name: "Courier profiles",
|
||||||
|
// Code: "courier-profiles",
|
||||||
|
// Elements: []Element{
|
||||||
|
// {
|
||||||
|
// Name: "Name",
|
||||||
|
// Code: "name",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// Name: "Lastname",
|
||||||
|
// Code: "lastname",
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.Code)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomDictionariesCreate(customDictionary CustomDictionary) (CustomResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&customDictionary)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"customDictionary": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest("/custom-fields/dictionaries/create", p)
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getting information on directory
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomDictionary("courier-profiles")
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.CustomDictionary.Name)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomDictionary(code string) (CustomDictionaryResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomDictionaryResponse
|
||||||
|
|
||||||
|
data, status, err := c.GetRequest(fmt.Sprintf("/custom-fields/dictionaries/%s", code))
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Directory fields editing
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomDictionaryEdit(v5.CustomDictionary{
|
||||||
|
// Name: "Courier profiles",
|
||||||
|
// Code: "courier-profiles",
|
||||||
|
// Elements: []Element{
|
||||||
|
// {
|
||||||
|
// Name: "Name",
|
||||||
|
// Code: "name",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// Name: "Lastname",
|
||||||
|
// Code: "lastname",
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.Code)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomDictionaryEdit(customDictionary CustomDictionary) (CustomResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&customDictionary)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"customDictionary": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest(fmt.Sprintf("/custom-fields/dictionaries/%s/edit", customDictionary.Code), p)
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Custom fields creation
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomFieldsCreate(v5.CustomFieldsEditRequest{
|
||||||
|
// CustomField: v5.CustomFields{
|
||||||
|
// Name: "First order",
|
||||||
|
// Code: "first-order",
|
||||||
|
// Type: "bool",
|
||||||
|
// Entity: "order",
|
||||||
|
// DisplayArea: "customer",
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.Code)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomFieldsCreate(customFields CustomFieldsEditRequest) (CustomResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&customFields)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"customField": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest(fmt.Sprintf("/custom-fields/%s/create", customFields.CustomField.Entity), p)
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getting information on custom fields
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomField("order", "first-order")
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.CustomField)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomField(entity, code string) (CustomFieldResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomFieldResponse
|
||||||
|
|
||||||
|
data, status, err := c.GetRequest(fmt.Sprintf("/custom-fields/%s/%s", entity, code))
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomFieldEdit list method
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// var client = v5.New("https://demo.url", "09jIJ")
|
||||||
|
//
|
||||||
|
// data, status, err := client.CustomFieldEdit("order", v5.CustomFieldsEditRequest{
|
||||||
|
// CustomField: v5.CustomFields{
|
||||||
|
// Name: "First customer order",
|
||||||
|
// Code: "first-order",
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// if err.ErrorMsg != "" {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if status >= http.StatusBadRequest {
|
||||||
|
// fmt.Printf("%v", err.ErrorMsg)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// If data.Success == true {
|
||||||
|
// fmt.Printf("%v", data.Code)
|
||||||
|
// }
|
||||||
|
func (c *Client) CustomFieldEdit(entity string, customFields CustomFieldsEditRequest) (CustomResponse, int, ErrorResponse) {
|
||||||
|
var resp CustomResponse
|
||||||
|
|
||||||
|
costJSON, _ := json.Marshal(&customFields)
|
||||||
|
|
||||||
|
p := url.Values{
|
||||||
|
"customField": {string(costJSON[:])},
|
||||||
|
}
|
||||||
|
|
||||||
|
data, status, err := c.PostRequest(fmt.Sprintf("/custom-fields/%s/%s/edit", entity, customFields.CustomField.Code), p)
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
|
||||||
|
json.Unmarshal(data, &resp)
|
||||||
|
|
||||||
|
return resp, status, err
|
||||||
|
}
|
||||||
|
@ -14,6 +14,8 @@ import (
|
|||||||
var r *rand.Rand // Rand for this package.
|
var r *rand.Rand // Rand for this package.
|
||||||
var user, _ = strconv.Atoi(os.Getenv("RETAILCRM_USER"))
|
var user, _ = strconv.Atoi(os.Getenv("RETAILCRM_USER"))
|
||||||
var statuses = map[int]bool{http.StatusOK: true, http.StatusCreated: true}
|
var statuses = map[int]bool{http.StatusOK: true, http.StatusCreated: true}
|
||||||
|
var id int
|
||||||
|
var ids []int
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
r = rand.New(rand.NewSource(time.Now().UnixNano()))
|
r = rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
@ -1850,3 +1852,391 @@ func TestClient_DeliveryShipments(t *testing.T) {
|
|||||||
t.Errorf("%v", err.ApiError())
|
t.Errorf("%v", err.ApiError())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestClient_CostCreate(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CostCreate(CostRecord{
|
||||||
|
DateFrom: "2018-04-02",
|
||||||
|
DateTo: "2018-04-02",
|
||||||
|
Summ: 124,
|
||||||
|
CostItem: "seo",
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
id = data.ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_Costs(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.Costs(CostsRequest{
|
||||||
|
Filter: CostsFilter{
|
||||||
|
Ids: []string{strconv.Itoa(id)},
|
||||||
|
},
|
||||||
|
Limit: 20,
|
||||||
|
Page: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_Cost(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.Cost(id)
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CostEdit(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CostEdit(id, CostRecord{
|
||||||
|
DateFrom: "2018-04-09",
|
||||||
|
DateTo: "2018-04-09",
|
||||||
|
Summ: 421,
|
||||||
|
CostItem: "seo",
|
||||||
|
Order: nil,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CostDelete(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CostDelete(id)
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CostsUpload(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CostsUpload([]CostRecord{
|
||||||
|
{
|
||||||
|
Source: nil,
|
||||||
|
DateFrom: "2018-04-02",
|
||||||
|
DateTo: "2018-04-02",
|
||||||
|
Summ: 124,
|
||||||
|
CostItem: "seo",
|
||||||
|
Order: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Source: nil,
|
||||||
|
DateFrom: "2018-04-03",
|
||||||
|
DateTo: "2018-04-03",
|
||||||
|
Summ: 125,
|
||||||
|
CostItem: "seo",
|
||||||
|
Order: nil,
|
||||||
|
Sites: []string{"catalog-test"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
ids = data.UploadedCosts
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CostsDelete(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
data, status, err := c.CostsDelete(ids)
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CustomFields(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomFields(CustomFieldsRequest{})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func TestClient_CustomDictionaries(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomDictionaries(CustomDictionariesRequest{
|
||||||
|
Filter: CustomDictionariesFilter{
|
||||||
|
Name: "test",
|
||||||
|
},
|
||||||
|
Limit: 10,
|
||||||
|
Page: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CustomDictionary(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomDictionary("test2")
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CustomDictionariesCreate(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomDictionariesCreate(CustomDictionary{
|
||||||
|
Name: "test2",
|
||||||
|
Code: "test2",
|
||||||
|
Elements: []Element{
|
||||||
|
{
|
||||||
|
Name: "test",
|
||||||
|
Code: "test",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CustomDictionaryEdit(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomDictionaryEdit(CustomDictionary{
|
||||||
|
Name: "test223",
|
||||||
|
Code: "test2",
|
||||||
|
Elements: []Element{
|
||||||
|
{
|
||||||
|
Name: "test3",
|
||||||
|
Code: "test3",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CustomFieldsCreate(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomFieldsCreate(CustomFieldsEditRequest{
|
||||||
|
CustomField: CustomFields{
|
||||||
|
Name: "test4",
|
||||||
|
Code: "test4",
|
||||||
|
Type: "text",
|
||||||
|
Entity: "order",
|
||||||
|
DisplayArea: "customer",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CustomField(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomField("customer", "testtest")
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClient_CustomFieldEdit(t *testing.T) {
|
||||||
|
c := client()
|
||||||
|
|
||||||
|
data, status, err := c.CustomFieldEdit("customer", CustomFieldsEditRequest{
|
||||||
|
CustomField: CustomFields{
|
||||||
|
Name: "testtesttest",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if err.ErrorMsg != "" {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.Success != true {
|
||||||
|
t.Errorf("%v", err.ErrorMsg)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -296,3 +296,39 @@ type ShipmentFilter struct {
|
|||||||
DeliveryTypes []string `url:"deliveryTypes,omitempty,brackets"`
|
DeliveryTypes []string `url:"deliveryTypes,omitempty,brackets"`
|
||||||
Statuses []string `url:"statuses,omitempty,brackets"`
|
Statuses []string `url:"statuses,omitempty,brackets"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CostsFilter type
|
||||||
|
type CostsFilter struct {
|
||||||
|
MinSumm string `url:"minSumm,omitempty"`
|
||||||
|
MaxSumm string `url:"maxSumm,omitempty"`
|
||||||
|
OrderNumber string `url:"orderNumber,omitempty"`
|
||||||
|
Comment string `url:"orderNumber,omitempty"`
|
||||||
|
Ids []string `url:"ids,omitempty,brackets"`
|
||||||
|
Sites []string `url:"sites,omitempty,brackets"`
|
||||||
|
CreatedBy []string `url:"createdBy,omitempty,brackets"`
|
||||||
|
CostGroups []string `url:"costGroups,omitempty,brackets"`
|
||||||
|
CostItems []string `url:"costItems,omitempty,brackets"`
|
||||||
|
Users []string `url:"users,omitempty,brackets"`
|
||||||
|
DateFrom string `url:"dateFrom,omitempty"`
|
||||||
|
DateTo string `url:"dateTo,omitempty"`
|
||||||
|
CreatedAtFrom string `url:"createdAtFrom,omitempty"`
|
||||||
|
CreatedAtTo string `url:"createdAtTo,omitempty"`
|
||||||
|
OrderIds []string `url:"orderIds,omitempty,brackets"`
|
||||||
|
OrderExternalIds []string `url:"orderIds,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomFieldsFilter type
|
||||||
|
type CustomFieldsFilter struct {
|
||||||
|
Name string `url:"name,omitempty"`
|
||||||
|
Code string `url:"code,omitempty"`
|
||||||
|
Type string `url:"type,omitempty"`
|
||||||
|
Entity string `url:"entity,omitempty"`
|
||||||
|
ViewMode string `url:"viewMode,omitempty"`
|
||||||
|
DisplayArea string `url:"displayArea,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomDictionariesFilter type
|
||||||
|
type CustomDictionariesFilter struct {
|
||||||
|
Name string `url:"name,omitempty"`
|
||||||
|
Code string `url:"code,omitempty"`
|
||||||
|
}
|
||||||
|
@ -142,3 +142,30 @@ type DeliveryShipmentsRequest struct {
|
|||||||
Limit int `url:"limit,omitempty"`
|
Limit int `url:"limit,omitempty"`
|
||||||
Page int `url:"page,omitempty"`
|
Page int `url:"page,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CostsRequest type
|
||||||
|
type CostsRequest struct {
|
||||||
|
Filter CostsFilter `url:"filter,omitempty"`
|
||||||
|
Limit int `url:"limit,omitempty"`
|
||||||
|
Page int `url:"page,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomFieldsRequest type
|
||||||
|
type CustomFieldsRequest struct {
|
||||||
|
Filter CustomFieldsFilter `url:"filter,omitempty"`
|
||||||
|
Limit int `url:"limit,omitempty"`
|
||||||
|
Page int `url:"page,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomeDictionariesRequest type
|
||||||
|
type CustomDictionariesRequest struct {
|
||||||
|
Filter CustomDictionariesFilter `url:"filter,omitempty"`
|
||||||
|
Limit int `url:"limit,omitempty"`
|
||||||
|
Page int `url:"page,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomFieldsEditRequest type
|
||||||
|
type CustomFieldsEditRequest struct {
|
||||||
|
CustomField CustomFields `url:"customField,omitempty"`
|
||||||
|
Entity string `url:"entity,omitempty"`
|
||||||
|
}
|
||||||
|
@ -328,3 +328,61 @@ type IntegrationModuleEditResponse struct {
|
|||||||
Success bool `json:"success"`
|
Success bool `json:"success"`
|
||||||
Info map[string]string `json:"info,omitempty,brackets"`
|
Info map[string]string `json:"info,omitempty,brackets"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CostsResponse type
|
||||||
|
type CostsResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
Pagination *Pagination `json:"pagination,omitempty"`
|
||||||
|
Costs []Cost `json:"costs,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CostsUploadResponse type
|
||||||
|
type CostsUploadResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
UploadedCosts []int `json:"uploadedCosts,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CostsDeleteResponse type
|
||||||
|
type CostsDeleteResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
Count int `json:"count,omitempty,brackets"`
|
||||||
|
NotRemovedIds []int `json:"notRemovedIds,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CostResponse type
|
||||||
|
type CostResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
Cost *Cost `json:"cost,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomFieldsResponse type
|
||||||
|
type CustomFieldsResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
Pagination *Pagination `json:"pagination,omitempty"`
|
||||||
|
CustomFields []CustomFields `json:"customFields,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomDictionariesResponse type
|
||||||
|
type CustomDictionariesResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
Pagination *Pagination `json:"pagination,omitempty"`
|
||||||
|
CustomDictionaries *[]CustomDictionary `json:"customDictionaries,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomDictionariesResponse type
|
||||||
|
type CustomResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
Code string `json:"code,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomDictionaryResponse type
|
||||||
|
type CustomDictionaryResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
CustomDictionary *CustomDictionary `json:"CustomDictionary,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomFieldResponse type
|
||||||
|
type CustomFieldResponse struct {
|
||||||
|
Success bool `json:"success"`
|
||||||
|
CustomField CustomFields `json:"customField,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
68
v5/types.go
68
v5/types.go
@ -864,3 +864,71 @@ type Action struct {
|
|||||||
URL string `json:"url,omitempty"`
|
URL string `json:"url,omitempty"`
|
||||||
CallPoints []string `json:"callPoints,omitempty"`
|
CallPoints []string `json:"callPoints,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Cost related types
|
||||||
|
*/
|
||||||
|
|
||||||
|
// CostRecord type
|
||||||
|
type CostRecord struct {
|
||||||
|
Source *Source `json:"source,omitempty"`
|
||||||
|
Comment string `json:"comment,omitempty"`
|
||||||
|
DateFrom string `json:"dateFrom,omitempty"`
|
||||||
|
DateTo string `json:"dateTo,omitempty"`
|
||||||
|
Summ float32 `json:"summ,omitempty"`
|
||||||
|
CostItem string `json:"costItem,omitempty"`
|
||||||
|
UserId int `json:"userId,omitempty"`
|
||||||
|
Order *Order `json:"order,omitempty"`
|
||||||
|
Sites []string `json:"sites,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cost type
|
||||||
|
type Cost struct {
|
||||||
|
Source *Source `json:"source,omitempty"`
|
||||||
|
ID int `json:"id,omitempty"`
|
||||||
|
DateFrom string `json:"dateFrom,omitempty"`
|
||||||
|
DateTo string `json:"dateTo,omitempty"`
|
||||||
|
Summ float32 `json:"summ,omitempty"`
|
||||||
|
CostItem string `json:"costItem,omitempty"`
|
||||||
|
Comment string `json:"comment,omitempty"`
|
||||||
|
CreatedAt string `json:"createdAt,omitempty"`
|
||||||
|
CreatedBy string `json:"createdBy,omitempty"`
|
||||||
|
Order *Order `json:"order,omitempty"`
|
||||||
|
UserId int `json:"userId,omitempty"`
|
||||||
|
Sites []string `json:"sites,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomFields type
|
||||||
|
type CustomFields struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Code string `json:"code,omitempty"`
|
||||||
|
Required bool `json:"required,omitempty"`
|
||||||
|
InFilter bool `json:"inFilter,omitempty"`
|
||||||
|
InList bool `json:"inList,omitempty"`
|
||||||
|
InGroupActions bool `json:"inGroupActions,omitempty"`
|
||||||
|
Type string `json:"type,omitempty"`
|
||||||
|
Entity string `json:"entity,omitempty"`
|
||||||
|
Default string `json:"default,omitempty"`
|
||||||
|
Ordering int `json:"ordering,omitempty"`
|
||||||
|
DisplayArea string `json:"displayArea,omitempty"`
|
||||||
|
ViewMode string `json:"viewMode,omitempty"`
|
||||||
|
Dictionary string `json:"dictionary,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
CustomeDictionaries related types
|
||||||
|
*/
|
||||||
|
|
||||||
|
// customDictionary type
|
||||||
|
type CustomDictionary struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Code string `json:"code,omitempty"`
|
||||||
|
Elements []Element `json:"elements,omitempty,brackets"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dictionary Element type
|
||||||
|
type Element struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Code string `json:"code,omitempty"`
|
||||||
|
Ordering int `json:"ordering,omitempty"`
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user