mirror of
https://github.com/retailcrm/api-client-go.git
synced 2024-11-23 05:16:04 +03:00
566 lines
13 KiB
Go
566 lines
13 KiB
Go
//go:build testutils
|
||
// +build testutils
|
||
|
||
package retailcrm
|
||
|
||
func getProductsCreate() []ProductCreate {
|
||
products := []ProductCreate{
|
||
{
|
||
CatalogID: 3,
|
||
BaseProduct: BaseProduct{
|
||
Name: "Product 1",
|
||
URL: "https://example.com/p/1",
|
||
Article: "p1",
|
||
ExternalID: "ext1",
|
||
Manufacturer: "man1",
|
||
Description: "Description 1",
|
||
Popular: true,
|
||
Stock: true,
|
||
Novelty: true,
|
||
Recommended: true,
|
||
Active: true,
|
||
Markable: true,
|
||
},
|
||
Groups: []ProductEditGroupInput{{ID: 19}},
|
||
},
|
||
{
|
||
CatalogID: 3,
|
||
BaseProduct: BaseProduct{
|
||
Name: "Product 2",
|
||
URL: "https://example.com/p/2",
|
||
Article: "p2",
|
||
ExternalID: "ext2",
|
||
Manufacturer: "man2",
|
||
Description: "Description 2",
|
||
Popular: true,
|
||
Stock: true,
|
||
Novelty: true,
|
||
Recommended: true,
|
||
Active: true,
|
||
Markable: true,
|
||
},
|
||
Groups: []ProductEditGroupInput{{ID: 19}},
|
||
},
|
||
}
|
||
|
||
return products
|
||
}
|
||
|
||
func getProductsCreateResponse() ProductsBatchCreateResponse {
|
||
return ProductsBatchCreateResponse{
|
||
SuccessfulResponse: SuccessfulResponse{Success: true},
|
||
ProcessedProductsCount: 2,
|
||
AddedProducts: []int{1, 2},
|
||
}
|
||
}
|
||
|
||
func getProductsEdit() []ProductEdit {
|
||
products := []ProductEdit{
|
||
{
|
||
BaseProduct: getProductsCreate()[0].BaseProduct,
|
||
ID: 194,
|
||
CatalogID: 3,
|
||
Site: "second",
|
||
},
|
||
{
|
||
BaseProduct: getProductsCreate()[1].BaseProduct,
|
||
ID: 195,
|
||
CatalogID: 3,
|
||
Site: "second",
|
||
},
|
||
}
|
||
|
||
return products
|
||
}
|
||
|
||
func getProductsEditResponse() ProductsBatchEditResponse {
|
||
return ProductsBatchEditResponse{
|
||
SuccessfulResponse: SuccessfulResponse{Success: true},
|
||
ProcessedProductsCount: 2,
|
||
NotFoundProducts: nil,
|
||
}
|
||
}
|
||
|
||
func getLoyaltyAccountCreate() SerializedCreateLoyaltyAccount {
|
||
return SerializedCreateLoyaltyAccount{
|
||
SerializedBaseLoyaltyAccount: SerializedBaseLoyaltyAccount{
|
||
PhoneNumber: "89151005004",
|
||
CustomFields: []interface{}{"dog"},
|
||
},
|
||
Customer: SerializedEntityCustomer{
|
||
ID: 123,
|
||
},
|
||
}
|
||
}
|
||
|
||
func getLoyaltyAccountCreateResponse() CreateLoyaltyAccountResponse {
|
||
return CreateLoyaltyAccountResponse{
|
||
SuccessfulResponse: SuccessfulResponse{Success: true},
|
||
LoyaltyAccount: LoyaltyAccount{
|
||
Active: true,
|
||
ID: 13,
|
||
PhoneNumber: "89151005004",
|
||
LoyaltyLevel: LoyaltyLevel{},
|
||
CreatedAt: "2022-11-24 12:39:37",
|
||
ActivatedAt: "2022-11-24 12:39:37",
|
||
CustomFields: map[string]interface{}{
|
||
"animal": "dog",
|
||
},
|
||
},
|
||
}
|
||
}
|
||
|
||
func getLoyaltyAccountEditResponse() EditLoyaltyAccountResponse {
|
||
return EditLoyaltyAccountResponse{
|
||
SuccessfulResponse: SuccessfulResponse{Success: true},
|
||
LoyaltyAccount: LoyaltyAccount{
|
||
Active: true,
|
||
ID: 13,
|
||
PhoneNumber: "89142221020",
|
||
LoyaltyLevel: LoyaltyLevel{},
|
||
CreatedAt: "2022-11-24 12:39:37",
|
||
ActivatedAt: "2022-11-24 12:39:37",
|
||
CustomFields: map[string]interface{}{
|
||
"animal": "dog",
|
||
},
|
||
},
|
||
}
|
||
}
|
||
|
||
func getLoyaltyAccountResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"loyaltyAccount": {
|
||
"active": true,
|
||
"id": 13,
|
||
"loyalty": {
|
||
"id": 2
|
||
},
|
||
"customer": {
|
||
"id": 123,
|
||
"customFields": {},
|
||
"firstName": "Руслан1",
|
||
"lastName": "Ефанов",
|
||
"patronymic": ""
|
||
},
|
||
"phoneNumber": "89142221020",
|
||
"amount": 0,
|
||
"ordersSum": 0,
|
||
"nextLevelSum": 10000,
|
||
"level": {
|
||
"type": "bonus_percent",
|
||
"id": 5,
|
||
"name": "Новичок",
|
||
"sum": 0,
|
||
"privilegeSize": 5,
|
||
"privilegeSizePromo": 3
|
||
},
|
||
"createdAt": "2022-11-24 12:39:37",
|
||
"activatedAt": "2022-11-24 12:39:37",
|
||
"status": "activated",
|
||
"customFields": {
|
||
"custom_multiselect": ["test1", "test3"],
|
||
"custom_select": "test2",
|
||
"custom_integer": 456,
|
||
"custom_float": 8.43
|
||
}
|
||
}
|
||
}`
|
||
}
|
||
|
||
func getBonusDetailsResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"pagination": {
|
||
"limit": 20,
|
||
"totalCount": 41,
|
||
"currentPage": 3,
|
||
"totalPageCount": 3
|
||
},
|
||
"statistic": {
|
||
"totalAmount": 240
|
||
},
|
||
"bonuses": [
|
||
{
|
||
"date": "2022-12-08",
|
||
"amount": 240
|
||
}
|
||
]
|
||
}`
|
||
}
|
||
|
||
func getLoyaltyAccountsResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"pagination": {
|
||
"limit": 20,
|
||
"totalCount": 1,
|
||
"currentPage": 1,
|
||
"totalPageCount": 1
|
||
},
|
||
"loyaltyAccounts": [
|
||
{
|
||
"active": true,
|
||
"id": 14,
|
||
"loyalty": {
|
||
"id": 2
|
||
},
|
||
"customer": {
|
||
"id": 109,
|
||
"firstName": "Казимир",
|
||
"lastName": "Эльбрусов"
|
||
},
|
||
"phoneNumber": "89185556363",
|
||
"amount": 0,
|
||
"ordersSum": 0,
|
||
"nextLevelSum": 10000,
|
||
"level": {
|
||
"type": "bonus_percent",
|
||
"id": 5,
|
||
"name": "Новичок",
|
||
"sum": 0,
|
||
"privilegeSize": 5,
|
||
"privilegeSizePromo": 3
|
||
},
|
||
"createdAt": "2022-12-07 15:27:04",
|
||
"activatedAt": "2022-12-07 15:27:04",
|
||
"status": "activated"
|
||
}
|
||
]
|
||
}`
|
||
}
|
||
|
||
func getLoyaltyCalculateReq() LoyaltyCalculateRequest {
|
||
return LoyaltyCalculateRequest{
|
||
Site: "main",
|
||
Order: Order{
|
||
PrivilegeType: "loyalty_level",
|
||
Customer: &Customer{
|
||
ID: 123,
|
||
},
|
||
Items: []OrderItem{
|
||
{
|
||
InitialPrice: 10000,
|
||
Quantity: 1,
|
||
Offer: Offer{ID: 214},
|
||
PriceType: &PriceType{Code: "base"},
|
||
},
|
||
},
|
||
},
|
||
Bonuses: 10,
|
||
}
|
||
}
|
||
|
||
func getLoyaltyCalculateResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"order": {
|
||
"bonusesCreditTotal": 999,
|
||
"bonusesChargeTotal": 10,
|
||
"privilegeType": "loyalty_level",
|
||
"totalSumm": 9990,
|
||
"loyaltyAccount": {
|
||
"id": 13,
|
||
"amount": 240
|
||
},
|
||
"loyaltyLevel": {
|
||
"id": 6,
|
||
"name": "Любитель"
|
||
},
|
||
"customer": {
|
||
"id": 123,
|
||
"personalDiscount": 0
|
||
},
|
||
"delivery": {
|
||
"cost": 0
|
||
},
|
||
"site": "main",
|
||
"items": [
|
||
{
|
||
"bonusesChargeTotal": 10,
|
||
"bonusesCreditTotal": 999,
|
||
"priceType": {
|
||
"code": "base"
|
||
},
|
||
"initialPrice": 10000,
|
||
"discounts": [
|
||
{
|
||
"type": "bonus_charge",
|
||
"amount": 10
|
||
}
|
||
],
|
||
"discountTotal": 10,
|
||
"prices": [
|
||
{
|
||
"price": 9990,
|
||
"quantity": 1
|
||
}
|
||
],
|
||
"quantity": 1,
|
||
"offer": {
|
||
"xmlId": "696999ed-bc8d-4d0f-9627-527acf7b1d57"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"calculations": [
|
||
{
|
||
"privilegeType": "loyalty_level",
|
||
"discount": 10,
|
||
"creditBonuses": 999,
|
||
"maxChargeBonuses": 240,
|
||
"maximum": true
|
||
},
|
||
{
|
||
"privilegeType": "none",
|
||
"discount": 10,
|
||
"creditBonuses": 0,
|
||
"maxChargeBonuses": 240,
|
||
"maximum": false
|
||
}
|
||
],
|
||
"loyalty": {
|
||
"name": "Бонусная программа",
|
||
"chargeRate": 1
|
||
}
|
||
}`
|
||
}
|
||
|
||
func getLoyaltiesResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"pagination": {
|
||
"limit": 20,
|
||
"totalCount": 1,
|
||
"currentPage": 1,
|
||
"totalPageCount": 1
|
||
},
|
||
"loyalties": [
|
||
{
|
||
"levels": [
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 5,
|
||
"name": "Новичок",
|
||
"sum": 0,
|
||
"privilegeSize": 5,
|
||
"privilegeSizePromo": 3
|
||
},
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 6,
|
||
"name": "Любитель",
|
||
"sum": 10000,
|
||
"privilegeSize": 10,
|
||
"privilegeSizePromo": 5
|
||
},
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 7,
|
||
"name": "Продвинутый покупатель",
|
||
"sum": 25000,
|
||
"privilegeSize": 15,
|
||
"privilegeSizePromo": 7
|
||
},
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 8,
|
||
"name": "Мастер шоппинга",
|
||
"sum": 50000,
|
||
"privilegeSize": 20,
|
||
"privilegeSizePromo": 10
|
||
}
|
||
],
|
||
"active": true,
|
||
"blocked": false,
|
||
"id": 2,
|
||
"name": "Бонусная программа",
|
||
"confirmSmsCharge": false,
|
||
"confirmSmsRegistration": false,
|
||
"createdAt": "2022-01-18 15:40:22",
|
||
"activatedAt": "2022-12-08 12:05:45"
|
||
}
|
||
]
|
||
}`
|
||
}
|
||
|
||
func getLoyaltyResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"loyalty": {
|
||
"levels": [
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 5,
|
||
"name": "Новичок",
|
||
"sum": 0,
|
||
"privilegeSize": 5,
|
||
"privilegeSizePromo": 3
|
||
},
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 6,
|
||
"name": "Любитель",
|
||
"sum": 10000,
|
||
"privilegeSize": 10,
|
||
"privilegeSizePromo": 5
|
||
},
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 7,
|
||
"name": "Продвинутый покупатель",
|
||
"sum": 25000,
|
||
"privilegeSize": 15,
|
||
"privilegeSizePromo": 7
|
||
},
|
||
{
|
||
"type": "bonus_percent",
|
||
"id": 8,
|
||
"name": "Мастер шоппинга",
|
||
"sum": 50000,
|
||
"privilegeSize": 20,
|
||
"privilegeSizePromo": 10
|
||
}
|
||
],
|
||
"active": true,
|
||
"blocked": false,
|
||
"id": 2,
|
||
"name": "Бонусная программа",
|
||
"confirmSmsCharge": false,
|
||
"confirmSmsRegistration": false,
|
||
"createdAt": "2022-01-18 15:40:22",
|
||
"activatedAt": "2022-12-08 12:05:45"
|
||
}
|
||
}`
|
||
}
|
||
|
||
func getMGTemplatesResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"pagination": {
|
||
"limit": 10,
|
||
"totalCount": 100,
|
||
"currentPage": 5,
|
||
"totalPageCount": 10
|
||
},
|
||
"templates": [
|
||
{
|
||
"id": 1,
|
||
"externalId": 0,
|
||
"channel": {
|
||
"allowedSendByPhone": false,
|
||
"id": 1,
|
||
"externalId": 1,
|
||
"type": "fbmessenger",
|
||
"active": true,
|
||
"name": "fbmessenger"
|
||
},
|
||
"code": "namespace#NAMEAAA#ru",
|
||
"name": "NAMEAAA",
|
||
"active": true,
|
||
"template": [
|
||
"Text_0",
|
||
{
|
||
"var": "custom"
|
||
}
|
||
],
|
||
"templateExample": ["Text_1"],
|
||
"namespace": "namespace_0",
|
||
"lang": "en",
|
||
"category": "test_0",
|
||
"header": {
|
||
"text": {
|
||
"parts": [
|
||
"JABAAA",
|
||
{
|
||
"var": "custom"
|
||
}
|
||
],
|
||
"example": [
|
||
"AAAAAA"
|
||
]
|
||
},
|
||
"image": {
|
||
"example": "https://example.com/file/123.png"
|
||
},
|
||
"document": {
|
||
"example": "https://example.com/file/123.pdf"
|
||
},
|
||
"video": {
|
||
"example": "https://example.com/file/123.mp4"
|
||
}
|
||
},
|
||
"footer": "footer_0",
|
||
"buttons": [
|
||
{
|
||
"type": "PHONE_NUMBER",
|
||
"text": "your-phone-button-text",
|
||
"phoneNumber": "+79895553535"
|
||
},
|
||
{
|
||
"type": "QUICK_REPLY",
|
||
"text": "Yes"
|
||
},
|
||
{
|
||
"type": "URL",
|
||
"url": "https://example.com/file/{{1}}",
|
||
"text": "button",
|
||
"example": [
|
||
"https://www.website.com/dynamic-url-example"
|
||
]
|
||
}
|
||
],
|
||
"verificationStatus": "APPROVED"
|
||
}
|
||
]
|
||
}`
|
||
}
|
||
|
||
func getMGTemplatesForEdit() string {
|
||
return `[{"header":{"text":{"parts":["Hello,",{"var":"custom"}],"example":["Henry"]},"document":{"example":"https://example.com/file/123.pdf"},"image":{"example":"https://example.com/file/123.png"},"video":{"example":"https://example.com/file/123.mp4"}},"lang":"en","category":"test_0","code":"namespace#name_0#ru","name":"name_0","namespace":"namespace","footer":"footer_0","verificationStatus":"REJECTED","template":["Text_0",{"var":"custom"}],"buttons":[{"type":"PHONE_NUMBER","text":"your-phone-button-text","phoneNumber":"+79895553535"},{"type":"QUICK_REPLY","text":"Yes"},{"type":"URL","url":"https://example.com/file/{{1}}","text":"button","example":["https://www.website.com/dynamic-url-example"]}],"templateExample":["WIU"],"id":1,"externalId":10,"mgChannelId":110,"active":true}]`
|
||
}
|
||
|
||
func getStoreOfferResponse() string {
|
||
return `{
|
||
"success": true,
|
||
"pagination": {
|
||
"limit": 20,
|
||
"totalCount": 1,
|
||
"currentPage": 1,
|
||
"totalPageCount": 1
|
||
},
|
||
"offers": [
|
||
{
|
||
"images": [
|
||
"https://s3-s1.retailcrm.tech/ru-central1/retailcrm/dev-vega-d32aea7f9a5bc26eba6ad986077cea03/product/65a92fa0bb737-test.jpeg"
|
||
],
|
||
"id": 76,
|
||
"site": "main",
|
||
"name": "Название\nПеревод строки",
|
||
"article": "Артикул",
|
||
"product": {
|
||
"type": "product",
|
||
"catalogId": 2,
|
||
"id": 222
|
||
},
|
||
"prices": [
|
||
{
|
||
"priceType": "base",
|
||
"price": 10000,
|
||
"ordering": 991,
|
||
"currency": "RUB"
|
||
}
|
||
],
|
||
"purchasePrice": 10,
|
||
"quantity": 5,
|
||
"active": true,
|
||
"unit": {
|
||
"code": "pc",
|
||
"name": "Штука",
|
||
"sym": "шт."
|
||
}
|
||
}
|
||
]
|
||
}`
|
||
}
|