Get creation of a text file working
[txt.house] / txt_house / views.py
diff --git a/txt_house/views.py b/txt_house/views.py
new file mode 100644 (file)
index 0000000..5a8f922
--- /dev/null
@@ -0,0 +1,34 @@
+import base64
+import secrets
+
+from django.http import HttpResponse, Http404
+from django.shortcuts import get_object_or_404, redirect, render
+
+from . import models
+
+def index(request):
+    return render(
+        request,
+        'index.html',
+    )
+
+def create(request):
+    if request.method != 'POST':
+        raise Http404()
+
+    text = request.POST.get('text')
+
+    tf = models.TextFile(text=text, edit_key=secrets.token_urlsafe())
+    tf.save()
+
+    return redirect(tf.get_absolute_url())
+
+def text_file(request, pk):
+    if request.method != 'GET':
+        raise Http404()
+
+    pk_int = int.from_bytes(base64.urlsafe_b64decode(pk), 'big')
+
+    tf = get_object_or_404(models.TextFile, pk=pk_int)
+
+    return HttpResponse(tf.text)