summaryrefslogtreecommitdiff
path: root/golang/pkg/api/register.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--golang/pkg/api/register.go22
1 files changed, 20 insertions, 2 deletions
diff --git a/golang/pkg/api/register.go b/golang/pkg/api/register.go
index 4f95e2f..4f45cd1 100644
--- a/golang/pkg/api/register.go
+++ b/golang/pkg/api/register.go
@@ -1,5 +1,11 @@
package api
+import (
+ "encoding/json"
+ "fmt"
+ "net/url"
+)
+
type RegisterMessage struct {
//agent
//contract
@@ -8,13 +14,25 @@ type RegisterMessage struct {
Token string `json:"token"`
}
-func (c *Client) Register(faction, symbol string) (APIMessage[RegisterMessage, any], error) {
+func (c *Client) Register(faction, symbol string) (*RegisterMessage, error) {
type RegisterRequest struct {
Faction string `json:"faction"`
Symbol string `json:"symbol"`
}
- return Send[RegisterMessage](c, "POST", "/register", RegisterRequest{
+ uriRef := url.URL{Path: "register"}
+ msg, err := c.Send("POST", &uriRef, RegisterRequest{
Faction: faction,
Symbol: symbol,
})
+ if err != nil {
+ return nil, err
+ }
+ if msg.Error != nil {
+ return nil, msg.Error
+ }
+ var response RegisterMessage
+ if err := json.Unmarshal(msg.Data, &response); err != nil {
+ return nil, fmt.Errorf("failed to unmarshal register data: %w", err)
+ }
+ return &response, nil
}