При использовании запросов для обновления полей профиля можно передавать дополнительные инструкции прямо в поле.

Инструкция имеет определенную структуру:

{
    "action": "set",
    "value": "x",
}

Поле action может принимать одно из следущих значенией:

actionНазначение Тип поляvalue
setРаботает так же, как и простое обновление поля, устанавливает значениевсе типы: date, string, enum, phone, int, float, tags, object, arr_objectЗависит от типа поля в бд
unsetУдаляет поле из структуры профиля, только для Custom полейвсе типы: date, string, enum, phone, int, float, tags, object, arr_objectНет
incrУвеличивает значение поляint, floatЧисло
addДобавляет элементы в поле профиляtags, arr_objectМассив строк
deleteУдаляет элементы из поля профиляtags, arr_objectМассив строк
upsertУстанавливает значение из поля value в свойство, указанное в поле submatch  objectЗависит от типа поля

Для типов данных object, arr_object необходимо передавать поля value и submatch (путь к свойству, значение которого необходимо обновить).


Пример запроса profiles/update, уменьшающий значение одного поля и увеличивающий другое:

{
	"token": "abcdefghijklmnqrstuvwxyz",   
	"db_id": 24,
	"profile_id": "5a5b64a969d4265b958b9ac3",
	"data": {
		"checks": {
			"action": "incr",
			"value": 1000
		},
   		"returns":  {
			"action": "incr",
			"value": -1000
    	}
  	}
}

Пример запроса profiles/update, манипулирующий тегами:

{
  "token": "abcdefghijklmnqrstuvwxyz",
  "db_id": 24,
  "profile_id": "5a5b64a969d4265b958b9ac3",
  "data": {
    "category": {
       "action": "add",
       "value": ["cars", "cats"]
    }
  }
}

Пример запроса profiles/update, который обновит поле "x" в объекте:

{ 
  "token": "abcdefghijklmnqrstuvwxyz",  
  "db_id": 24,
  "profile_id": "5a5b64a969d4265b958b9ac3",
  "data": {
    "myObject": {
       "action": "upsert",
       "value": "y",
       "submatch": "x",
    },
  }
}

Пример запроса profiles/update, который установит новое значение (value) для всех элементов объекта, содержащих указанное свойство (submatch):

{   
  "token": "abcdefghijklmnqrstuvwxyz",
  "db_id": 24,
  "profile_id": "5a5b64a969d4265b958b9ac3",
  "data": {
    "myArrOfObject": {
       "action": "upsert",
       "value": {"x": "y", "z": 1},
       "submatch": "x",
    },
  }
}
{
    {
       "A": 1,
       "x": false,
    },
    {
       "B": "test"
    },
    {
       "x": "test",
       "C": true
    }
 }
{
    {
       "A": 1,
       "x": {"x": "y", "z": 1},
    },
    {
       "B": "test"
    },
    {
       "x": {"x": "y", "z": 1},
       "C": true
    }
 }

Если у полей с типом object и object_arr отсутствует свойство, которое вы хотите изменить (action), то это свойство создается автоматически.

  • No labels