Source: factory.core/extend.ticket/ObjTicketSync.py
Dual-write provider: internal DB + Asana.
Every operation is committed to the internal
database first. A best-effort sync to Asana
follows. Failures on the Asana side are logged
...
| Method | Signature | Description |
|---|---|---|
| sync_to_asana | sync_to_asana(guid: str) -> dict |
Push a local ticket to Asana. |
| sync_from_asana | sync_from_asana(asana_gid: str) -> dict |
Pull an Asana task into the internal DB. |
| create | create(subject: str, description: str = '', priority: str = 'MEDIUM', ticket_type: str = 'USER', requested_by: str = '', requested_by_type: str = 'INTERNAL', server_id: str = '') -> dict |
Create in internal DB, then sync to Asana. |
| update | update(guid: str, subject: str = '', description: str = '', priority: str = '') -> dict |
Update in internal DB, then sync to Asana. |
| change_status | change_status(guid: str, new_status: str, action_by: str = '') -> dict |
Change status in internal DB, then sync |
| assign | assign(guid: str, user: str, action_by: str = '') -> dict |
Assign in internal DB, then sync to Asana. |
| add_comment | add_comment(guid: str, text: str, commented_by: str = '') -> dict |
Add comment in internal DB, then sync |
| get_ticket | get_ticket(guid: str) -> dict |
Read from internal DB (source of truth). |
| list_tickets | list_tickets(package: str = '', status: str = '', priority: str = '', assignee: str = '') -> list |
List from internal DB (source of truth). |
| close | close(guid: str, action_by: str = '') -> dict |
Close in internal DB, then sync to Asana. |
| resolve | resolve(guid: str, action_by: str = '', notes: str = '') -> dict |
Resolve in internal DB, then sync to |
| escalate | escalate(guid: str, action_by: str = '') -> dict |
Escalate in internal DB, then sync to |