1
0
Fork 0

[golang] update error handling and bootstrap trade procurement

This commit is contained in:
Julien Dessaux 2025-02-18 00:49:18 +01:00
parent fd06283b8d
commit a692a38d28
Signed by: adyxax
GPG key ID: F92E51B86E07177E
10 changed files with 66 additions and 50 deletions

View file

@ -10,7 +10,7 @@ import (
func (a *agent) visitAllShipyards(ship *model.Ship) error {
shipyards, err := a.listShipyardsInSystem(ship.Nav.SystemSymbol)
if err != nil {
return fmt.Errorf("failed to visit all shipyards: %w", err)
return fmt.Errorf("failed to list shipyards in system %s: %w", ship.Nav.SystemSymbol, err)
}
shipyards = slices.DeleteFunc(shipyards, func(shipyard model.Shipyard) bool {
// filter out shipyards for which we already have ships prices
@ -25,22 +25,22 @@ func (a *agent) visitAllShipyards(ship *model.Ship) error {
}
waypoint, err := a.client.GetWaypoint(ship.Nav.WaypointSymbol, a.db)
if err != nil {
return fmt.Errorf("failed to visit all shipyards: %w", err)
return fmt.Errorf("failed to get nav waypoint %s: %w", ship.Nav.WaypointSymbol, err)
}
waypoints := make([]model.Waypoint, 0)
for i := range shipyards {
waypoint, err := a.client.GetWaypoint(shipyards[i].Symbol, a.db)
if err != nil {
return fmt.Errorf("failed to visit all shipyards: %w", err)
return fmt.Errorf("failed to get waypoint %s: %w", shipyards[i].Symbol, err)
}
waypoints = append(waypoints, *waypoint)
}
sortByDistanceFrom(waypoint, waypoints)
if err := a.client.Navigate(ship, waypoints[0].Symbol, a.db); err != nil {
return fmt.Errorf("failed to visit all shipyards: %w", err)
return fmt.Errorf("failed to navigate to %s: %w", waypoints[0].Symbol, err)
}
if _, err := a.client.GetShipyard(&waypoints[0], a.db); err != nil {
return fmt.Errorf("failed to visit all shipyards: %w", err)
return fmt.Errorf("failed to get shipyard %s: %w", waypoints[0].Symbol, err)
}
// TODO get market data
return a.visitAllShipyards(ship)