Simplify POST and PUT response.

This commit is contained in:
Julien Palard 2023-04-25 18:12:41 +02:00
parent 133fd480b8
commit d0b6ec7014
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8
2 changed files with 13 additions and 7 deletions

View File

@ -48,8 +48,11 @@ class Paste(models.Model):
"""Computes size."""
self.size = len(self.content)
def get_absolute_url(self):
return reverse("paste", kwargs={"path": self.slug})
def get_absolute_url(self, request=None):
uri = reverse("paste", kwargs={"path": self.slug})
if request:
uri = request.build_absolute_uri(uri)
return uri
def incr_viewcount(self):
"""Increment view counter."""

View File

@ -35,7 +35,7 @@ def get_files(request):
def pastes_as_table(request, pastes, headers=("URL", "size", "filename")):
def paste_attr(paste, attr):
if attr == "URL":
return request.build_absolute_uri(paste.get_absolute_url())
return paste.get_absolute_url(request)
value = getattr(paste, attr)
if isinstance(value, datetime):
return value.isoformat(timespec="seconds")
@ -75,9 +75,7 @@ class PasteView(View):
paste.content = request.read().decode("UTF-8")
paste.compute_size()
paste.save()
return HttpResponse(
pastes_as_table(request, [paste]), content_type="text/plain"
)
return HttpResponse("- " + paste.get_absolute_url(request) + "\n")
@method_decorator(csrf_exempt, name="dispatch")
@ -100,7 +98,12 @@ class IndexView(PasteView):
paste.save()
pastes.append(paste)
return HttpResponse(pastes_as_table(request, pastes), content_type="text/plain")
return HttpResponse(
"- "
+ " \n- ".join(paste.get_absolute_url(request) for paste in pastes)
+ "\n",
content_type="text/plain",
)
class ListView(View):