New field Tags in Customer struct

This commit is contained in:
Alex Lushpai 2020-08-04 15:49:06 +03:00 committed by GitHub
commit e9c6bf7474
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 22 deletions

View File

@ -9,6 +9,7 @@ import (
"net/http"
"net/url"
"os"
"reflect"
"strconv"
"strings"
"testing"
@ -273,6 +274,10 @@ func TestClient_CustomerChange(t *testing.T) {
Street: "Кутузовский",
Building: "14",
},
Tags: []Tag{
{"first", "#3e89b6", false},
{"second", "#ffa654", false},
},
}
defer gock.Off()
@ -337,7 +342,23 @@ func TestClient_CustomerChange(t *testing.T) {
Get(fmt.Sprintf("/api/v5/customers/%v", f.ExternalID)).
MatchParam("by", ByExternalID).
Reply(200).
BodyString(`{"success": true}`)
BodyString(`{
"success": true,
"customer": {
"tags": [
{
"name": "first",
"color": "#3e89b6",
"attached": false
},
{
"name": "second",
"color": "#ffa654",
"attached": false
}
]
}
}`)
data, status, err := c.Customer(f.ExternalID, ByExternalID, "")
if err.Error() != "" {
@ -351,6 +372,10 @@ func TestClient_CustomerChange(t *testing.T) {
if data.Success != true {
t.Errorf("%v", err.ApiError())
}
if !reflect.DeepEqual(data.Customer.Tags, f.Tags) {
t.Errorf("%v", err.ApiError())
}
}
func TestClient_CustomerChange_Fail(t *testing.T) {

View File

@ -26,24 +26,24 @@ type Pagination struct {
// Address type
type Address struct {
Index string `json:"index,omitempty"`
CountryIso string `json:"countryIso,omitempty"`
Region string `json:"region,omitempty"`
RegionID int `json:"regionId,omitempty"`
City string `json:"city,omitempty"`
CityID int `json:"cityId,omitempty"`
CityType string `json:"cityType,omitempty"`
Street string `json:"street,omitempty"`
StreetID int `json:"streetId,omitempty"`
StreetType string `json:"streetType,omitempty"`
Building string `json:"building,omitempty"`
Flat string `json:"flat,omitempty"`
Floor int `json:"floor,omitempty"`
Block int `json:"block,omitempty"`
House string `json:"house,omitempty"`
Metro string `json:"metro,omitempty"`
Notes string `json:"notes,omitempty"`
Text string `json:"text,omitempty"`
Index string `json:"index,omitempty"`
CountryIso string `json:"countryIso,omitempty"`
Region string `json:"region,omitempty"`
RegionID int `json:"regionId,omitempty"`
City string `json:"city,omitempty"`
CityID int `json:"cityId,omitempty"`
CityType string `json:"cityType,omitempty"`
Street string `json:"street,omitempty"`
StreetID int `json:"streetId,omitempty"`
StreetType string `json:"streetType,omitempty"`
Building string `json:"building,omitempty"`
Flat string `json:"flat,omitempty"`
Floor int `json:"floor,omitempty"`
Block int `json:"block,omitempty"`
House string `json:"house,omitempty"`
Metro string `json:"metro,omitempty"`
Notes string `json:"notes,omitempty"`
Text string `json:"text,omitempty"`
}
// GeoHierarchyRow type
@ -149,6 +149,7 @@ type Customer struct {
MgCustomerID string `json:"mgCustomerId,omitempty"`
PhotoURL string `json:"photoUrl,omitempty"`
CustomFields map[string]string `json:"customFields,omitempty,brackets"`
Tags []Tag `json:"tags,brackets,omitempty"`
}
// CorporateCustomer type
@ -628,15 +629,15 @@ type Segment struct {
// SettingsNode represents an item in settings. All settings nodes contains only string value and update time for now.
type SettingsNode struct {
Value string `json:"value"`
Value string `json:"value"`
UpdatedAt string `json:"updated_at"`
}
// Settings type. Contains retailCRM configuration.
type Settings struct {
DefaultCurrency SettingsNode `json:"default_currency"`
SystemLanguage SettingsNode `json:"system_language"`
Timezone SettingsNode `json:"timezone"`
SystemLanguage SettingsNode `json:"system_language"`
Timezone SettingsNode `json:"timezone"`
}
/**
@ -1101,3 +1102,10 @@ type Activity struct {
Active bool `json:"active"`
Freeze bool `json:"freeze"`
}
// Tag struct
type Tag struct {
Name string `json:"name,omitempty"`
Color string `json:"color,omitempty"`
Attached bool `json:"attached,omitempty"`
}