AtTask API — добавление нерабочих часов

Я использую Chrome Advanced Rest Client для тестирования API AtTask. Я узнал много вещей, но также получил неожиданные результаты. Последнее происходит при добавлении новых записей в календарь времени отключения AtTask.

Я могу легко добавить выходной в календарь. Я использую метод POST со следующим URL:

https://COMPANY.attasksandbox.com/attask/api/v4.0/resvt?sessionID=SESSIONIDGOESHERE&userID=USERIDGOESHERE&startDate=2014-11-24T00:00:00&endDate=2014-11-28T23:59:59

Это означает, что все дни с 11/24 по 11/28 выходной. Отлично, пока. Проблема в том, что он удаляет все другие записи об отключении для указанного пользователя. Я не выпускаю УДАЛИТЬ, поэтому я не понимаю, почему записи удаляются. Что еще более важно, я не понимаю, как предотвратить их удаление.

Еще раз спасибо заранее.

0

Решение

Тайм-аут в attask сохраняется как коллекция, и когда вы вносите изменения в коллекцию, она заменяет данные коллекции датой, указанной в обновлении. Вот почему ваш звонок удаляет существующие данные.

Чтобы добавить новый выходной, вам нужно сделать 2 звонка: 1, чтобы получить существующий выходной, и один, чтобы ввести данные обратно с новыми датами.

примечание — я использую свои собственные данные, поэтому даты немного отличаются для меня, но концепция та же

Ваш звонок будет

GET  /api/resvt/search?userID=[userID]&fields=endDate,startDate,ID

который возвращает что-то вроде

{

"data": [
{
"ID": "547debb6000dea62198bd66b7c73e174",
"objCode": "RESVT",
"endDate": "2014-07-08T23:59:00:163-0600",
"startDate": "2014-07-08T00:00:00:163-0600"},
{
"ID": "547debb6000dea61b8c695ba24918fe8",
"objCode": "RESVT",
"endDate": "2014-02-13T23:59:00:329-0700",
"startDate": "2014-02-13T00:00:00:329-0700"}
]

}

Получив это, вы можете добавить новое время в коллекцию, используя команду updates для объекта пользователя. Обратите внимание, что вы предоставляете идентификаторы на время, которое уже есть в системе, и новое время, которое вы не предоставляете.

PUT /attask/api/v4.0/user/[userID]?&sessionID=[sessionID]&updates={reservedTimes: [ { "ID": "547debb6000dea62198bd66b7c73e174", "objCode": "RESVT", "endDate": "2014-07-08T23:59:00:163-0600", "startDate": "2014-07-08T00:00:00:163-0600" }, { "ID": "547debb6000dea61b8c695ba24918fe8", "objCode": "RESVT", "endDate": "2014-02-13T23:59:00:329-0700", "startDate": "2014-02-13T00:00:00:329-0700" }, { "objCode": "RESVT", "endDate": "2014-02-14T23:59:00:329-0700", "startDate": "2014-02-14T00:00:00:329-0700" } ] }

Это немного громоздко и сложно, но на данный момент это единственный способ сделать это в API.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector