API AtTask – добавление времени выключения

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

Я могу легко добавить время в календарь. Я использую метод 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 являются простоями. Отлично, до сих пор. Проблема заключается в том, что он удаляет все другие записи об отключении для указанного пользователя. Я не выдаю DELETE, так что я не понимаю, сыворотка удаляет записи. Что еще более важно, я не понимаю, как избежать их удаления.

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

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

Чтобы добавить новый тайм-аут, вам нужно будет сделать 2 вызова 1, чтобы получить exsisting time-off, и один для ввода данных с новыми датами.

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

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

 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" } ] 

}

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

 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 в это время.