|
1 | 1 | import json |
2 | 2 | import os |
| 3 | +from typing import List, Optional |
3 | 4 | from base64 import b64encode |
4 | 5 | from datetime import datetime, timedelta |
5 | 6 | from urllib.parse import quote_plus, urlencode, urljoin |
@@ -812,3 +813,30 @@ def submit_task( |
812 | 813 | return self._parse_response( |
813 | 814 | self.requests.post(endpoint, data=json.dumps(task), headers=headers) |
814 | 815 | ) |
| 816 | + |
| 817 | + def add_tags_to_tasks(self, task_ids: List[str], tags: List[str], company_id: Optional[str]=None, endpoint: Optional[str]=None): |
| 818 | + company_id = company_id or self.company_id |
| 819 | + endpoint = urljoin( |
| 820 | + endpoint or self.base_endpoint, |
| 821 | + f"app/company/{company_id}/tasks/tags/batch", |
| 822 | + ) |
| 823 | + headers = self._get_headers() |
| 824 | + headers["Accept"] = "application/json" |
| 825 | + headers["Content-Type"] = "application/json" |
| 826 | + data = {"taskIds": task_ids, "add": tags, "remove": []} |
| 827 | + return self._parse_response( |
| 828 | + self.requests.post( |
| 829 | + endpoint, data=json.dumps(data), headers=headers |
| 830 | + ) |
| 831 | + ) |
| 832 | + |
| 833 | + def get_tags_for_task(self, task_id: str, company_id: Optional[str]=None, endpoint: Optional[str]=None): |
| 834 | + company_id = company_id or self.company_id |
| 835 | + endpoint = urljoin( |
| 836 | + endpoint or self.base_endpoint, |
| 837 | + f"app/company/{company_id}/tasks/{task_id}/tags", |
| 838 | + ) |
| 839 | + headers = self._get_headers() |
| 840 | + headers["Accept"] = "application/json" |
| 841 | + headers["Content-Type"] = "application/json" |
| 842 | + return self._parse_response(self.requests.get(endpoint, headers=headers)) |
0 commit comments