summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChloe Kudryavtsev <toast@toastin.space>2019-07-12 20:37:31 -0400
committerChloe Kudryavtsev <toast@toastin.space>2019-07-12 20:37:31 -0400
commit9b63350aaf63181a5f1ef6898be2dec421d5b545 (patch)
tree9433dfe3b87102e54264f101f1aaa22fb3fc8108
parentdocs: s/anything/foo/ for clarity (diff)
feat: add new routing for reads
/:id/:lang is now used. If :lang is raw, give raw output. This deprecates the old endpoints/methods: - /:id?lang=lang - /:id?lang - /raw/:id
-rw-r--r--source/app.d4
-rw-r--r--source/web.d6
-rw-r--r--views/index.dt13
3 files changed, 12 insertions, 11 deletions
diff --git a/source/app.d b/source/app.d
index 1115524..bf9af1b 100644
--- a/source/app.d
+++ b/source/app.d
@@ -23,8 +23,10 @@ shared static this() {
router.post("/", &post);
router.put("/:id", &put);
+ router.get("/:id/raw", &idRaw);
+ router.get("/:id/:lang", &idLng);
router.get("/:id", &idLng);
- router.get("/raw/:id", &idRaw);
+ router.get("/raw/:id", &idRaw); // DEPRECATED
listenHTTP(settings, router);
}
diff --git a/source/web.d b/source/web.d
index b2cf430..cc08bb4 100644
--- a/source/web.d
+++ b/source/web.d
@@ -26,9 +26,9 @@ void id(bool highlight, HTTPServerRequest req, HTTPServerResponse res) {
}
string language = "none";
- // TODO: rewrite the next two lines once #2273 is resolved
- if ("lang" in req.query) language = req.query["lang"];
- else if (req.query.length > 0) language = req.query.byKey.front;
+ if ("lang" in req.params) language = req.params["lang"];
+ else if ("lang" in req.query) language = req.query["lang"]; // DEPRECATED
+ else if (req.query.length > 0) language = req.query.byKey.front; // ditto
render!("code.dt", data, language)(res);
}
diff --git a/views/index.dt b/views/index.dt
index e0c91f4..1049f1c 100644
--- a/views/index.dt
+++ b/views/index.dt
@@ -18,19 +18,18 @@ block content
td: pre: code GET /id
td Read paste with ID "id"
tr
- td: pre: code GET /id?lang
- td Read paste with ID "id", and highlight it as "lang"
- tr
- td: pre: code GET /raw/id
+ td: pre: code GET /id/raw
td Get the raw contents of paste with ID "id"
+ tr
+ td: pre: code GET /id/lang
+ td Read paste with ID "id", and highlight it as "lang"
h2 Examples
pre: code(class='language-sh')
| http -f https://brpaste.example.com data=@file.txt
| http -f https://brpaste.example.com data=abcd
| http -f PUT https://brpaste.example.com/myPaste data=contents
- | http https://brpaste.example.com/raw/some_id
- | http https://brpaste.example.com/some_id lang==cpp
- | xdg-open https://brpaste.example.com/some_id?cpp
+ | http https://brpaste.example.com/some_id/raw
+ | xdg-open https://brpaste.example.com/some_id/cpp
h2 Paste from a browser
form(action='/', method='post')
textarea(name='data', autocomplete='off',