home · contact · privacy
Use different exceptions throwing different HTTP codes for different cases.
[plomtask] / plomtask / days.py
index 3b81a7f3bf526fd7bc56849558fbfaa451cdbe88..afdea33760b41df3149c857b306c6e2b447b7df8 100644 (file)
@@ -2,7 +2,7 @@
 from __future__ import annotations
 from datetime import datetime, timedelta
 from sqlite3 import Row
-from plomtask.misc import HandledException
+from plomtask.exceptions import BadFormatException, NotFoundException
 from plomtask.db import DatabaseConnection
 
 DATE_FORMAT = '%Y-%m-%d'
@@ -16,7 +16,7 @@ def valid_date(date_str: str) -> str:
         dt = datetime.strptime(date_str, DATE_FORMAT)
     except (ValueError, TypeError) as e:
         msg = f'Given date of wrong format: {date_str}'
-        raise HandledException(msg) from e
+        raise BadFormatException(msg) from e
     return dt.strftime(DATE_FORMAT)
 
 
@@ -76,7 +76,7 @@ class Day:
         for row in db_conn.exec('SELECT * FROM days WHERE date = ?', (date,)):
             return cls.from_table_row(row)
         if not create:
-            raise HandledException(f'Day not found for date: {date}')
+            raise NotFoundException(f'Day not found for date: {date}')
         return cls(date)
 
     @property