1import json
2
3from plain.views import View
4
5from .models import Pageview
6
7
8class TrackView(View):
9 def post(self) -> int:
10 try:
11 data = self.request.data
12 except json.JSONDecodeError:
13 return 400
14
15 try:
16 pageview = Pageview.create_from_request(
17 self.request,
18 url=data["url"],
19 title=data["title"],
20 referrer=data["referrer"],
21 timestamp=data["timestamp"],
22 )
23 except KeyError:
24 return 400
25
26 if pageview is None:
27 return 200
28
29 return 201