[golang] implement automation loop and add contract accepting
This commit is contained in:
parent
3dad3f60f2
commit
d97985a694
9 changed files with 223 additions and 64 deletions
|
@ -3,10 +3,33 @@ package api
|
|||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
"path"
|
||||
|
||||
"git.adyxax.org/adyxax/spacetraders/golang/pkg/database"
|
||||
"git.adyxax.org/adyxax/spacetraders/golang/pkg/model"
|
||||
)
|
||||
|
||||
func (c *Client) Accept(contract *model.Contract, db *database.DB) error {
|
||||
if contract.Accepted {
|
||||
return nil
|
||||
}
|
||||
uriRef := url.URL{Path: path.Join("my/contracts", contract.Id, "accept")}
|
||||
type acceptResponse struct {
|
||||
Agent *model.Agent `json:"agent"`
|
||||
Contract *model.Contract `json:"contract"`
|
||||
}
|
||||
var response acceptResponse
|
||||
if err := c.Send("POST", &uriRef, nil, &response); err != nil {
|
||||
return fmt.Errorf("failed to accept contract %s: %w", contract.Id, err)
|
||||
}
|
||||
if err := db.SaveAgent(response.Agent); err != nil {
|
||||
return fmt.Errorf("failed to accept contract %s: %w", contract.Id, err)
|
||||
}
|
||||
contract.Accepted = response.Contract.Accepted
|
||||
contract.Terms = response.Contract.Terms
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Client) MyContracts() ([]model.Contract, error) {
|
||||
uriRef := url.URL{Path: "my/contracts"}
|
||||
var contracts []model.Contract
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue