summaryrefslogtreecommitdiff
path: root/golang/pkg/api/agents.go
diff options
context:
space:
mode:
authorJulien Dessaux2024-05-28 13:13:13 +0200
committerJulien Dessaux2024-05-28 13:13:13 +0200
commit0d00bf9fd242d3b4f9f3d6caaf5a61f8a3627d7f (patch)
tree3abe6c21ff22cd725fe1edd7e5d2e2d1478b4313 /golang/pkg/api/agents.go
parent[node] send probes to visit all markets (diff)
downloadspacetraders-0d00bf9fd242d3b4f9f3d6caaf5a61f8a3627d7f.tar.gz
spacetraders-0d00bf9fd242d3b4f9f3d6caaf5a61f8a3627d7f.tar.bz2
spacetraders-0d00bf9fd242d3b4f9f3d6caaf5a61f8a3627d7f.zip
[golang] fixed golang api client design mistakes
Diffstat (limited to '')
-rw-r--r--golang/pkg/api/agents.go22
1 files changed, 20 insertions, 2 deletions
diff --git a/golang/pkg/api/agents.go b/golang/pkg/api/agents.go
index aa8107a..db5b7db 100644
--- a/golang/pkg/api/agents.go
+++ b/golang/pkg/api/agents.go
@@ -1,5 +1,11 @@
package api
+import (
+ "encoding/json"
+ "fmt"
+ "net/url"
+)
+
type AgentMessage struct {
AccountID string `json:"accountId"`
Credits int `json:"credits"`
@@ -9,6 +15,18 @@ type AgentMessage struct {
Symbol string `json:"symbol"`
}
-func (c *Client) MyAgent() (APIMessage[AgentMessage, any], error) {
- return Send[AgentMessage](c, "GET", "/my/agent", nil)
+func (c *Client) MyAgent() (*AgentMessage, error) {
+ uriRef := url.URL{Path: "my/agent"}
+ msg, err := c.Send("GET", &uriRef, nil)
+ if err != nil {
+ return nil, err
+ }
+ if msg.Error != nil {
+ return nil, msg.Error
+ }
+ var response AgentMessage
+ if err := json.Unmarshal(msg.Data, &response); err != nil {
+ return nil, fmt.Errorf("failed to unmarshal agent data: %w", err)
+ }
+ return &response, nil
}