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.""" """Computes size."""
self.size = len(self.content) self.size = len(self.content)
def get_absolute_url(self): def get_absolute_url(self, request=None):
return reverse("paste", kwargs={"path": self.slug}) uri = reverse("paste", kwargs={"path": self.slug})
if request:
uri = request.build_absolute_uri(uri)
return uri
def incr_viewcount(self): def incr_viewcount(self):
"""Increment view counter.""" """Increment view counter."""

View File

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