Compare commits

..

9 commits
v1.5.0 ... main

Author SHA1 Message Date
050cef92e4 Bump version to 1.5.5
Some checks failed
test / test (push) Has been cancelled
2025-06-25 12:03:23 +10:00
de20cb5001 Handle float values without decimal point 2025-06-25 12:03:04 +10:00
aed9b6413f Bump version to 1.5.4
Some checks are pending
test / test (push) Waiting to run
2025-06-25 10:24:00 +10:00
a4edaa71e1 Add to_string functions for tokens 2025-06-25 10:23:38 +10:00
89ff1b3520 Bump version to 1.5.3
Some checks failed
test / test (push) Has been cancelled
2025-06-20 00:16:52 +10:00
59ecc25dc7 Fix code example in readme 2025-06-20 00:16:24 +10:00
35b1d0c1fc Bump version to 1.5.2
Some checks are pending
test / test (push) Waiting to run
2025-06-19 23:38:35 +10:00
f9944d6878 Fix incorrect auth on supply_construction_site endpoint 2025-06-19 23:38:22 +10:00
70a30ff132 Bump version to 1.5.1
Some checks are pending
test / test (push) Waiting to run
2025-06-18 20:30:53 +10:00
6 changed files with 30 additions and 10 deletions

View file

@ -7,12 +7,11 @@
gleam add spacetraders_sdk@1
```
```gleam
import spacetraders_sdk
import spacetraders_api
pub fn main() -> Nil {
let assert Ok(server_status) = get_server_status()
echo server_status
Nil
let assert Ok(server_status) = spacetraders_api.get_server_status()
io.println(server_status.status)
}
```

View file

@ -1,5 +1,5 @@
name = "spacetraders_sdk"
version = "1.5.0"
version = "1.5.5"
gleam = ">= 1.11.0"
description = "A Gleam SDK for the spacetraders.io game API"
licences = ["MIT"]

View file

@ -1673,6 +1673,7 @@ pub type ConstructionSiteSupplied {
}
pub fn supply_construction_site(
token: AgentToken,
system_symbol: SystemSymbol,
waypoint_symbol: WaypointSymbol,
ship_symbol: ShipSymbol,
@ -1681,7 +1682,7 @@ pub fn supply_construction_site(
) -> ApiResponse(ConstructionSiteSupplied) {
let request =
api.post_json(
NoAuth,
AgentAuth(token),
"/systems/"
<> system_symbol.to_string(system_symbol)
<> "/waypoints/"

View file

@ -1,4 +1,5 @@
import gleam/dynamic/decode.{type Decoder}
import gleam/int
import gleam/json.{type Json}
pub opaque type ShipComponentCondition {
@ -17,7 +18,11 @@ pub fn parse(value: Float) -> Result(ShipComponentCondition, Nil) {
}
pub fn decoder() -> Decoder(ShipComponentCondition) {
use value <- decode.then(decode.float)
use value <- decode.then(
decode.one_of(decode.float, [
decode.then(decode.int, fn(i) { decode.success(int.to_float(i)) }),
]),
)
case parse(value) {
Ok(ship_component_condition) -> decode.success(ship_component_condition)
Error(Nil) ->

View file

@ -1,4 +1,5 @@
import gleam/dynamic/decode.{type Decoder}
import gleam/int
import gleam/json.{type Json}
pub opaque type ShipComponentIntegrity {
@ -17,7 +18,11 @@ pub fn parse(value: Float) -> Result(ShipComponentIntegrity, Nil) {
}
pub fn decoder() -> Decoder(ShipComponentIntegrity) {
use value <- decode.then(decode.float)
use value <- decode.then(
decode.one_of(decode.float, [
decode.then(decode.int, fn(i) { decode.success(int.to_float(i)) }),
]),
)
case parse(value) {
Ok(ship_component_integrity) -> decode.success(ship_component_integrity)
Error(Nil) ->

View file

@ -31,11 +31,11 @@ pub type PagedData(data) {
}
pub opaque type AccountToken {
AccountToken(token: String)
AccountToken(String)
}
pub opaque type AgentToken {
AgentToken(token: String)
AgentToken(String)
}
pub type TokenParseError {
@ -67,6 +67,11 @@ pub fn account_token_decoder() -> Decoder(AccountToken) {
}
}
pub fn account_token_to_string(account_token: AccountToken) -> String {
let AccountToken(value) = account_token
value
}
pub fn parse_agent_token(value: String) -> Result(AgentToken, TokenParseError) {
use jwt <- result.try(jwt.parse(value) |> result.replace_error(InvalidToken))
case jwt.payload.subject {
@ -83,6 +88,11 @@ pub fn agent_token_decoder() -> Decoder(AgentToken) {
}
}
pub fn agent_token_to_string(agent_token: AgentToken) -> String {
let AgentToken(value) = agent_token
value
}
@internal
pub fn set_request_auth(req: Request(a), auth_method: AuthMethod) -> Request(a) {
case auth_method {