X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=plomtask%2Fhttp.py;h=8106d13c3c9f5c65b16dd1df12705543e183d46e;hb=ab5a23f86261ef74b00fd77ff198275bac6b82fd;hp=d9fa6a03194d1838fcf36f8cc860a4eab0baf6ac;hpb=abef15c28141490af71a1b8a11882aaabc0d3775;p=plomtask
diff --git a/plomtask/http.py b/plomtask/http.py
index d9fa6a0..8106d13 100644
--- a/plomtask/http.py
+++ b/plomtask/http.py
@@ -25,10 +25,7 @@ class TaskHandler(BaseHTTPRequestHandler):
def do_GET(self):
"""Handle any GET request."""
try:
- conn = DatabaseConnection(self.server.db)
- parsed_url = urlparse(self.path)
- site = path_split(parsed_url.path)[1]
- params = parse_qs(parsed_url.query)
+ conn, site, params = self._init_handling()
if 'calendar' == site:
html = self.do_GET_calendar(conn)
elif 'day' == site:
@@ -55,10 +52,7 @@ class TaskHandler(BaseHTTPRequestHandler):
def do_POST(self):
"""Handle any POST request."""
try:
- conn = DatabaseConnection(self.server.db)
- parsed_url = urlparse(self.path)
- site = path_split(parsed_url.path)[1]
- params = parse_qs(parsed_url.query)
+ conn, site, params = self._init_handling()
length = int(self.headers['content-length'])
postvars = parse_qs(self.rfile.read(length).decode(),
keep_blank_values=1)
@@ -74,13 +68,17 @@ class TaskHandler(BaseHTTPRequestHandler):
def do_POST_day(self, conn: DatabaseConnection, date: str, postvars: dict):
"""Update or insert Day of date and fields defined in postvars."""
comment = postvars['comment'][0]
- day = Day.by_date(conn, date)
- if day:
- day.comment = comment
- else:
- day = Day(date, comment)
+ day = Day.by_date(conn, date, create=True)
+ day.comment = comment
day.save(conn)
+ def _init_handling(self):
+ conn = DatabaseConnection(self.server.db)
+ parsed_url = urlparse(self.path)
+ site = path_split(parsed_url.path)[1]
+ params = parse_qs(parsed_url.query)
+ return conn, site, params
+
def _redirect(self, target: str):
self.send_response(302)
self.send_header('Location', target)