diff options
| author | Fuwn <[email protected]> | 2024-07-01 04:42:58 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-07-01 04:42:58 -0700 |
| commit | ba557deee146793c50a96ccc3969dcc98858e97d (patch) | |
| tree | 5761460f39645d5d4916f0d6cdc103daa6d8603b /src | |
| parent | 5449d7986e28131785da86b9c83e553aba43c504 (diff) | |
| download | mayu-ba557deee146793c50a96ccc3969dcc98858e97d.tar.xz mayu-ba557deee146793c50a96ccc3969dcc98858e97d.zip | |
feat(request): padding query parameterv0.1.12
Diffstat (limited to 'src')
| -rw-r--r-- | src/request.gleam | 26 | ||||
| -rw-r--r-- | src/svg.gleam | 4 |
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]) |