Packages

Advent of code helper - automating setup of tests, solution template and problem input

Current section

Files

Jump to
adglent src priv aoc_client.gleam
Raw

src/priv/aoc_client.gleam

import gleam/result.{try}
import gleam/hackney.{type Error, Other}
import gleam/http/request
import gleam/dynamic
import gleam/int
pub fn get_input(
year: String,
day: String,
session: String,
) -> Result(String, Error) {
let assert Ok(request) =
request.to(
"https://adventofcode.com/" <> year <> "/day/" <> day <> "/input",
)
// Send the HTTP request to the server
use response <- try(
request
|> request.prepend_header("Accept", "application/json")
|> request.prepend_header("Cookie", "session=" <> session <> ";")
|> hackney.send,
)
case response.status {
status if status >= 200 && status < 300 -> Ok(response.body)
status ->
Error(Other(dynamic.from(int.to_string(status) <> " - " <> response.body)))
}
}