Skip to content

Commit 1108f6c

Browse files
committed
add safe sdk
1 parent d325f03 commit 1108f6c

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

taskbadger/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from .integrations import Action, EmailIntegration
22
from .internal.models import StatusEnum
3+
from .safe_sdk import create_task_safe, update_task_safe
34
from .sdk import Task, create_task, get_task, init, update_task
45

56
try:

taskbadger/safe_sdk.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import logging
2+
from typing import Optional
3+
4+
from .sdk import Mug, create_task, update_task
5+
6+
log = logging.getLogger("taskbadger")
7+
8+
9+
def create_task_safe(name: str, **kwargs) -> Optional[str]:
10+
"""Create a Task.
11+
12+
Arguments:
13+
name: The name of the task.
14+
**kwargs: See ``taskbadger.create_task``
15+
16+
Returns:
17+
Task ID
18+
"""
19+
if not Mug.is_configured:
20+
return None
21+
22+
try:
23+
task = create_task(name, **kwargs)
24+
except Exception:
25+
log.exception("Error creating task '%s'", name)
26+
else:
27+
return task.id
28+
29+
30+
def update_task_safe(task_id: str, **kwargs) -> None:
31+
"""Update a task.
32+
Requires only the task ID and fields to update.
33+
34+
Arguments:
35+
task_id: The ID of the task to update.
36+
**kwargs: See ``taskbadger.update_task``
37+
"""
38+
if not Mug.is_configured:
39+
return
40+
41+
try:
42+
update_task(task_id, **kwargs)
43+
except Exception:
44+
log.exception("Error updating task '%s'", task_id)

0 commit comments

Comments
 (0)