gleam-spacetraders-client/dev/spacetraders_register.gleam
Lily Rose 456faeaa60
Some checks failed
test / test (push) Has been cancelled
Switch from sdk to api package
2025-07-09 17:14:26 +10:00

50 lines
1.5 KiB
Gleam

import argv
import gleam/io
import gleam/list
import gleam_community/ansi
import spacetraders_api_httpc
import spacetraders_client/env
import spacetraders_client/pretty_print
import spacetraders_models/agent_symbol
import spacetraders_models/agent_token
import spacetraders_models/faction_symbol
const usage = "\nusage: gleam -m spacetraders_register AGENT_SYMBOL FACTION_SYMBOL"
pub fn main() {
let assert Ok(account_token) = env.get_account_token()
as "no valid account token provided"
let args = argv.load().arguments
let assert [agent_symbol_str, ..args] = args
as { "missing agent symbol argument\n" <> usage }
let assert Ok(agent_symbol) = agent_symbol.parse(agent_symbol_str)
as { "invalid agent symbol\n" <> usage }
let assert [faction_symbol_str, ..] = args
as { "missing faction symbol argument\n" <> usage }
let assert Ok(faction_symbol) = faction_symbol.parse(faction_symbol_str)
as { "invalid faction symbol\n" <> usage }
let assert Ok(registered) =
spacetraders_api_httpc.register_new_agent(
account_token,
agent_symbol,
faction_symbol,
)
as "Failed to register agent"
io.println(ansi.bold(ansi.underline(ansi.green("Successfully Registered"))))
io.println(
ansi.bold("Agent Token:\t") <> agent_token.to_string(registered.token),
)
io.println("")
pretty_print.agent(registered.agent)
io.println("")
pretty_print.contract(registered.contract)
io.println("")
list.each(registered.ships, fn(ship) {
pretty_print.ship(ship)
io.println("")
})
}