This commit is contained in:
AcerecA 2026-01-02 21:02:51 +01:00
parent 0407393eda
commit e2431f2b21
3 changed files with 27 additions and 13 deletions

View File

@ -3,6 +3,7 @@ from dataclasses import dataclass, field, fields
from json import loads from json import loads
from os import environ from os import environ
from typing import Any, Callable, Self, TypedDict from typing import Any, Callable, Self, TypedDict
from urllib.error import HTTPError
from .hints import JSONDataMap from .hints import JSONDataMap
from .requests import get, put from .requests import get, put
@ -124,15 +125,19 @@ class ClickupSession:
base_url: str = "https://api.clickup.com/api/v2" base_url: str = "https://api.clickup.com/api/v2"
def _get(self, endpoint: str, **query_params: str) -> JSONDataMap: def _get(self, endpoint: str, **query_params: str) -> JSONDataMap:
raw_data = get( try:
self.base_url + endpoint, raw_data = get(
query_params, self.base_url + endpoint,
headers={ query_params,
"accept": "application/json", headers={
"Authorization": self.auth_key, "accept": "application/json",
}, "Authorization": self.auth_key,
) },
return loads(raw_data) )
return loads(raw_data)
except HTTPError as e:
e.add_note(e.url)
raise
def _put(self, endpoint: str, **body_params: str) -> JSONDataMap: def _put(self, endpoint: str, **body_params: str) -> JSONDataMap:
raw_data = put( raw_data = put(

View File

@ -1,3 +1,4 @@
from ssl import SSLContext, create_default_context
from urllib.request import Request, urlopen from urllib.request import Request, urlopen
@ -8,12 +9,16 @@ def get(
) -> str: ) -> str:
with urlopen( with urlopen(
Request( Request(
url + ("?" + "&".join(f"{k}={v}" for k, v in query_params.items())) url
if query_params + (
else "", ("?" + "&".join(f"{k}={v}" for k, v in query_params.items()))
if query_params
else ""
),
headers=headers or {}, headers=headers or {},
method="GET", method="GET",
), ),
context=create_default_context(),
) as resp: ) as resp:
return resp.read().decode("utf-8") return resp.read().decode("utf-8")
@ -30,5 +35,6 @@ def put(
headers=headers or {}, headers=headers or {},
method="PUT", method="PUT",
), ),
context=create_default_context(),
) as resp: ) as resp:
return resp.read().decode("utf-8") return resp.read().decode("utf-8")

View File

@ -14,7 +14,7 @@ def dump_scalar(entry: hints.JSONDataScalar) -> str:
case False: case False:
return "false\n" return "false\n"
case _: case _:
return f"{entry:s}\n" return f"{entry}\n"
def dump(obj: dict[str, hints.JSONDataScalar | list[hints.JSONDataScalar]]) -> str: def dump(obj: dict[str, hints.JSONDataScalar | list[hints.JSONDataScalar]]) -> str:
@ -24,10 +24,13 @@ def dump(obj: dict[str, hints.JSONDataScalar | list[hints.JSONDataScalar]]) -> s
ret += ":" ret += ":"
match value: match value:
case []:
ret += " []\n"
case list() as entries: case list() as entries:
ret += "\n" ret += "\n"
for entry in entries: for entry in entries:
ret += f" - {dump_scalar(entry)}" ret += f" - {dump_scalar(entry)}"
case entry: case entry:
ret += f" {dump_scalar(entry)}" ret += f" {dump_scalar(entry)}"