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

0

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

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

  • 0
    Кто-нибудь успешно добавил Time Off Hours через API? Есть ли ошибка в API, которая заставляет его удалить все предыдущие записи?
Теги:
rest
soap
attask

1 ответ

2
Лучший ответ

Отключение в 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 в это время.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню