diff --git a/client.go b/client.go index c31c1b6..b9d8a10 100644 --- a/client.go +++ b/client.go @@ -2213,10 +2213,12 @@ func (c *Client) GetFavorites(site, customer string, filter FavoritesFilter) (Fa // var client = retailcrm.New("https://demo.url", "09jIJ") // // data, status, err := client.AddFavorite("site_id", "customer_external_id", retailcrm.FavoritesFilter{SiteBy: "id", By: "externalId"}, -// retailcrm.AddFavoriteRequest{ -// ID: 1, -// ExternalID: "ext_id", -// XMLID: "xml_id", +// retailcrm.ChangeFavoritesRequest{ +// Offer: retailcrm.SerializedRelationOffer{ +// ID: 1, +// ExternalID: "ext_id", +// XMLID: "xml_id", +// }, // }, // ) // @@ -2227,7 +2229,7 @@ func (c *Client) GetFavorites(site, customer string, filter FavoritesFilter) (Fa // // log.Fatalf("http status: %d, error: %s", status, err) // } -func (c *Client) AddFavorite(site, customer string, filter FavoritesFilter, req AddFavoriteRequest) ( +func (c *Client) AddFavorite(site, customer string, filter FavoritesFilter, req ChangeFavoritesRequest) ( SuccessfulResponse, int, error, ) { var resp SuccessfulResponse @@ -2265,10 +2267,12 @@ func (c *Client) AddFavorite(site, customer string, filter FavoritesFilter, req // var client = retailcrm.New("https://demo.url", "09jIJ") // // data, status, err := client.RemoveFavorite("site_id", "customer_external_id", retailcrm.FavoritesFilter{SiteBy: "id", By: "externalId"}, -// retailcrm.AddFavoriteRequest{ -// ID: 1, -// ExternalID: "ext_id", -// XMLID: "xml_id", +// retailcrm.ChangeFavoritesRequest{ +// Offer: retailcrm.SerializedRelationOffer{ +// ID: 1, +// ExternalID: "ext_id", +// XMLID: "xml_id", +// }, // }, // ) // @@ -2279,7 +2283,7 @@ func (c *Client) AddFavorite(site, customer string, filter FavoritesFilter, req // // log.Fatalf("http status: %d, error: %s", status, err) // } -func (c *Client) RemoveFavorite(site, customer string, filter FavoritesFilter, req AddFavoriteRequest) ( +func (c *Client) RemoveFavorite(site, customer string, filter FavoritesFilter, req ChangeFavoritesRequest) ( SuccessfulResponse, int, error, ) { var resp SuccessfulResponse diff --git a/client_test.go b/client_test.go index 1132dbd..5c88cee 100644 --- a/client_test.go +++ b/client_test.go @@ -2194,10 +2194,12 @@ func TestClient_AddFavorite(t *testing.T) { site := "site_id" customer := "customer_id" filter := FavoritesFilter{SiteBy: "id"} - request := AddFavoriteRequest{ - ID: 1, - ExternalID: "ext_id", - XMLID: "xml_id", + request := ChangeFavoritesRequest{ + Offer: SerializedRelationOffer{ + ID: 1, + ExternalID: "ext_id", + XMLID: "xml_id", + }, } defer gock.Off() @@ -2212,12 +2214,12 @@ func TestClient_AddFavorite(t *testing.T) { require.NoError(t, err) data := val.Get("favorite") - var incoming AddFavoriteRequest + var incoming ChangeFavoritesRequest require.NoError(t, json.Unmarshal([]byte(data), &incoming)) - equal := assert.Equal(t, 1, incoming.ID) && - assert.Equal(t, "ext_id", incoming.ExternalID) && - assert.Equal(t, "xml_id", incoming.XMLID) + equal := assert.Equal(t, 1, incoming.Offer.ID) && + assert.Equal(t, "ext_id", incoming.Offer.ExternalID) && + assert.Equal(t, "xml_id", incoming.Offer.XMLID) if !equal { return false, errors.New("unequal values") @@ -2249,10 +2251,12 @@ func TestClient_RemoveFavorite(t *testing.T) { site := "site_id" customer := "customer_id" filter := FavoritesFilter{SiteBy: "id"} - request := AddFavoriteRequest{ - ID: 1, - ExternalID: "ext_id", - XMLID: "xml_id", + request := ChangeFavoritesRequest{ + Offer: SerializedRelationOffer{ + ID: 1, + ExternalID: "ext_id", + XMLID: "xml_id", + }, } defer gock.Off() @@ -2267,12 +2271,12 @@ func TestClient_RemoveFavorite(t *testing.T) { require.NoError(t, err) data := val.Get("favorite") - var incoming AddFavoriteRequest + var incoming ChangeFavoritesRequest require.NoError(t, json.Unmarshal([]byte(data), &incoming)) - equal := assert.Equal(t, 1, incoming.ID) && - assert.Equal(t, "ext_id", incoming.ExternalID) && - assert.Equal(t, "xml_id", incoming.XMLID) + equal := assert.Equal(t, 1, incoming.Offer.ID) && + assert.Equal(t, "ext_id", incoming.Offer.ExternalID) && + assert.Equal(t, "xml_id", incoming.Offer.XMLID) if !equal { return false, errors.New("unequal values") diff --git a/request.go b/request.go index 88b8582..ee04741 100644 --- a/request.go +++ b/request.go @@ -210,10 +210,8 @@ type SetCartRequest struct { Items []SetCartItem `json:"items,omitempty"` } -type AddFavoriteRequest struct { - ID int `json:"id,omitempty"` - ExternalID string `json:"externalId,omitempty"` - XMLID string `json:"xmlId,omitempty"` +type ChangeFavoritesRequest struct { + Offer SerializedRelationOffer `json:"offer"` } // CostsRequest type. diff --git a/types.go b/types.go index ee1f96c..70a6194 100644 --- a/types.go +++ b/types.go @@ -1710,3 +1710,9 @@ type MGChannelTemplate struct { MGChannelID int `json:"mgChannelId"` Active bool `json:"active"` } + +type SerializedRelationOffer struct { + ID int `json:"id,omitempty"` + ExternalID string `json:"externalId,omitempty"` + XMLID string `json:"xmlId,omitempty"` +}