Skip to content

Commit 09e57a7

Browse files
committed
http: api: support authentication by username
1 parent f8c13ae commit 09e57a7

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

src/enapter/http/api/auth.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@
55

66
class Auth(httpx.Auth):
77

8-
def __init__(self, token: str) -> None:
8+
def __init__(self, token: str | None = None, user: str | None = None) -> None:
99
self.token = token
10+
self.user = user
1011

1112
def auth_flow(
1213
self, request: httpx.Request
1314
) -> Generator[httpx.Request, httpx.Response, None]:
14-
request.headers["X-Enapter-Auth-Token"] = self.token
15+
if self.token is not None:
16+
request.headers["X-Enapter-Auth-Token"] = self.token
17+
if self.user is not None:
18+
request.headers["X-Enapter-Auth-User"] = self.user
1519
yield request

src/enapter/http/api/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class Client:
1212

1313
def __init__(self, config: Config) -> None:
1414
self._config = config
15-
self._auth = Auth(token=self._config.token)
15+
self._auth = Auth(token=self._config.token, user=self._config.user)
1616
self._headers = {}
1717
if self._config.allow_http:
1818
self._headers["X-Enapter-Allow-HTTP"] = "true"

src/enapter/http/api/config.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
@dataclasses.dataclass
77
class Config:
88

9-
token: str
109
base_url: str
1110
allow_http: bool = dataclasses.field(init=False)
11+
token: str | None = None
12+
user: str | None = None
1213

1314
def __post_init__(self) -> None:
1415
self.allow_http = self.base_url.startswith("http://")
@@ -19,4 +20,8 @@ def from_env(
1920
) -> Self:
2021
prefix = namespace + "HTTP_API_"
2122
base_url = env.get(prefix + "BASE_URL", "https://api.enapter.com")
22-
return cls(token=env[prefix + "TOKEN"], base_url=base_url)
23+
return cls(
24+
base_url=base_url,
25+
token=env.get(prefix + "TOKEN"),
26+
user=env.get(prefix + "USER"),
27+
)

0 commit comments

Comments
 (0)