1from plain.http import ResponseRedirect
2from plain.views import TemplateView
3
4from .requests import RequestLog
5
6
7class RequestsView(TemplateView):
8 template_name = "dev/requests.html"
9
10 def get_template_context(self):
11 ctx = super().get_template_context()
12 requestlogs = RequestLog.load_json_logs()
13
14 if self.request.query_params.get("log"):
15 try:
16 requestlog = [
17 x
18 for x in requestlogs
19 if x.get("name") == self.request.query_params["log"]
20 ][0]
21 except IndexError:
22 requestlog = None
23 elif requestlogs:
24 requestlog = requestlogs[0]
25 else:
26 requestlog = None
27
28 ctx["requestlogs"] = requestlogs
29 ctx["requestlog"] = requestlog
30
31 return ctx
32
33 def post(self):
34 if self.request.data.get("action") == "clear":
35 RequestLog.clear()
36 return ResponseRedirect(self.request.path)
37 else:
38 RequestLog.replay_request(self.request.data["log"])
39 return ResponseRedirect(".")