aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-07-01 04:42:58 -0700
committerFuwn <[email protected]>2024-07-01 04:42:58 -0700
commitba557deee146793c50a96ccc3969dcc98858e97d (patch)
tree5761460f39645d5d4916f0d6cdc103daa6d8603b /src
parent5449d7986e28131785da86b9c83e553aba43c504 (diff)
downloadmayu-ba557deee146793c50a96ccc3969dcc98858e97d.tar.xz
mayu-ba557deee146793c50a96ccc3969dcc98858e97d.zip
feat(request): padding query parameterv0.1.12
Diffstat (limited to 'src')
-rw-r--r--src/request.gleam26
-rw-r--r--src/svg.gleam4
2 files changed, 21 insertions, 9 deletions
diff --git a/src/request.gleam b/src/request.gleam
index 6e23caf..62abf1f 100644
--- a/src/request.gleam
+++ b/src/request.gleam
@@ -1,6 +1,8 @@
import database
import envoy
+import gleam/int
import gleam/json
+import gleam/list
import gleam/string
import gleam/string_builder
import simplifile
@@ -44,13 +46,23 @@ pub fn handle(request, connection) {
Ok(counter) -> {
wisp.ok()
|> wisp.set_header("Content-Type", "image/svg+xml")
- |> wisp.string_body(svg.xml(
- case wisp.get_query(request) {
- [#("theme", theme)] -> theme
- _ -> "asoul"
- },
- counter.num,
- ))
+ |> wisp.string_body(
+ svg.xml(
+ case list.key_find(wisp.get_query(request), "theme") {
+ Ok(theme) -> theme
+ _ -> "asoul"
+ },
+ counter.num,
+ case list.key_find(wisp.get_query(request), "padding") {
+ Ok(padding) ->
+ case int.parse(padding) {
+ Ok(n) -> n
+ Error(_) -> 6
+ }
+ _ -> 6
+ },
+ ),
+ )
}
Error(_) -> wisp.unprocessable_entity()
}
diff --git a/src/svg.gleam b/src/svg.gleam
index 1efadaa..d9de64f 100644
--- a/src/svg.gleam
+++ b/src/svg.gleam
@@ -55,13 +55,13 @@ fn images(theme, digits, width, height, svgs) {
}
}
-pub fn xml(theme, number) {
+pub fn xml(theme, number, padding) {
let xml =
images(
theme,
{
let assert Ok(digits) = int.digits(number, 10)
- let digits_padding = 5 - list.length(digits)
+ let digits_padding = padding - list.length(digits)
case digits_padding {
n if n > 0 -> list.concat([list.repeat(0, digits_padding), digits])