Працюємо з інтеграцією Xero.
- детальніше про інтегарцію тут і тут
- основна задача інтеграції - інтегрувати інвойси - передати в Xero після епруву в Precoro (статус інвойсу approved і оновити/видалити/відмінити в Xero після того як змінили в Precoro). Для того щоб це було можливим - інтегруємо списки Suppliers (вони ж Contacts в Xero, type - Suppliers), Item Custom Fields (вони ж Chart of Accounts в Xero та Custom Tracking Categories) та Tax rates.
Проблема яку маємо вирішити в тестовому завданні - вбивання/відпадання конекту.
- Для авторизації в Xero використовується Access Token (живе годину) та Refresh Token (живе 100 днів)
- Access оновлюється як тільки нам потрібно зробити дію в інтегарції, якщо наш Access вже не валідний - ми з нашим актуальним Refresh Token робимо запит на новий Access Token - і якщо наш Refresh валідний - нам дадуть новий Access токен і ми зможемо виконати дію інтеграції
- Refresh Token оновлюється кожен раз коли оновлюється 🙃 тобто якщо якась дія інтегарції повернула новий Refresh Token ми його маємо записати інакше інтеграція не буде жити і користувачу треба буде заново авторизовуватись
- Але - є причини по яким Refresh токен може перестати бути валідним і ми про це знати ніяк не можемо - в Xero конект видалив інший користувач, користувача видалили або змінили роль, термін демо закінчився, Xero видалив компанію взагалі, в Precoro відбувся баг і ми не записали новий Refresh Token, в Xero відбувся баг і вони Refresh Token змінили але нам його не надіслали або взагалі не прислали респонс, сервіс Xero був недоступний
- І нам потрібно заменеджити вбивання/відпадання конекту
- Якщо це видалили компанію або демо термін закінчився - про що нас Xero не сповіщає - ми маємо повністю видаляти інтеграцію. Бо змеплені списки вже не актуальні і ця компанія більше не буде існувати і конектитись до Precoro.
- Але якщо інші причини - конект треба тимчасово розривати, не видаляти інтеграцію самі і мепінг полів і просити користувача переавторизовуватись.
Про кожен такий дісконект інтегарції ми отримуємо помилку (самі собі генеруємо) і розбираємось що робити, чи нема тут якоїсь проблеми в нас чи в Xero на яку ми можемо повпливати. Але як досліджувати - хз, трошки навмання - або аудит дивитись про реквестам-респонсам і тестувати ті ж реквести-респонси, або логи в Xero дивитись, або шукати інформацію про відпадання Xero на їх статус сторінках.
- Як організувати флоу дісконекту інтегарції для кожного кейсу - так щоб менше витрачати час на розбір проблем і не зробити зайві переавторизації клієнту які бісять і разом з тим не провтикати дійсно проблему - коли ми наприклад не записали токен?
В результаті має бути діаграмма дісконектів або помилок або нотифікацій(все що можна зробити в процесі роботи з авторизаціями і відпаданням конектів) з причинами і як їх зрозуміти (по якимось факторам) і результат (дія) яку треба зробити.
Доповнити описом - що як і чому вирішуємо.
Документацію API Xero можна знайти тут
Доступ до продукту надіслано на пошту. Xero інтегарцію можна підконектити в продукті - для цього треба зареєструвати тріал в Xero.