Skip to content

Commit af43b8e

Browse files
committed
simplify login function to use API instead of custom logic
1 parent 1c76fb2 commit af43b8e

File tree

1 file changed

+4
-16
lines changed

1 file changed

+4
-16
lines changed

mergin/client.py

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -309,24 +309,12 @@ def login(self, login, password):
309309
self._auth_session = None
310310
self.log.info(f"Going to log in user {login}")
311311
try:
312-
self._auth_params = params
313-
url = urllib.parse.urljoin(self.url, urllib.parse.quote("/v1/auth/login"))
314-
data = json.dumps(self._auth_params, cls=DateTimeEncoder).encode("utf-8")
315-
request = urllib.request.Request(url, data, {"Content-Type": "application/json"}, method="POST")
316-
request.add_header("User-Agent", self.user_agent_info())
317-
resp = self.opener.open(request)
312+
resp = self.post("/v1/auth/login", data=params, headers={"Content-Type": "application/json"})
318313
data = json.load(resp)
319314
session = data["session"]
320-
except urllib.error.HTTPError as e:
321-
if e.headers.get("Content-Type", "") == "application/problem+json":
322-
info = json.load(e)
323-
self.log.info(f"Login problem: {info.get('detail')}")
324-
raise LoginError(info.get("detail"))
325-
self.log.info(f"Login problem: {e.read().decode('utf-8')}")
326-
raise LoginError(e.read().decode("utf-8"))
327-
except urllib.error.URLError as e:
328-
# e.g. when DNS resolution fails (no internet connection?)
329-
raise ClientError("failure reason: " + str(e.reason))
315+
except ClientError as e:
316+
self.log.info(f"Login problem: {e.detail}")
317+
raise LoginError(e.detail)
330318
self._auth_session = {
331319
"token": "Bearer %s" % session["token"],
332320
"expire": dateutil.parser.parse(session["expire"]),

0 commit comments

Comments
 (0)