seats_aero

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 28, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	API_URL    = "https://seats.aero/partnerapi"
	SEARCH_URL = API_URL + "/search"
	TRIP_URL   = API_URL + "/trips"
)
View Source
const AirportRegex = `^([A-Z]{3})(,[A-Z]{3})*$`

Variables

This section is empty.

Functions

func CachedSearchURL

func CachedSearchURL(origin, dest string, cabin Cabin, startDate, endDate string) (string, error)

func TripSearchURL

func TripSearchURL(id string) (string, error)

Types

type AvailabilityData

type AvailabilityData struct {
	ID                   string                `json:"ID"`
	RouteID              string                `json:"RouteID"`
	AvailabilityID       string                `json:"AvailabilityID"`
	AvailabilitySegments []AvailabilitySegment `json:"AvailabilitySegments"`
	TotalDuration        int                   `json:"TotalDuration"`
	Stops                int                   `json:"Stops"`
	Carriers             string                `json:"Carriers"`
	RemainingSeats       int                   `json:"RemainingSeats"`
	MileageCost          int                   `json:"MileageCost"`
	TotalTaxes           int                   `json:"TotalTaxes"`
	TaxesCurrency        string                `json:"TaxesCurrency"`
	TaxesCurrencySymbol  string                `json:"TaxesCurrencySymbol"`
	AllianceCost         int                   `json:"AllianceCost"`
	TotalSegmentDistance int                   `json:"TotalSegmentDistance"`
	FlightNumbers        string                `json:"FlightNumbers"`
	DepartsAt            time.Time             `json:"DepartsAt"`
	Cabin                string                `json:"Cabin"`
	ArrivesAt            time.Time             `json:"ArrivesAt"`
	CreatedAt            time.Time             `json:"CreatedAt"`
	UpdatedAt            time.Time             `json:"UpdatedAt"`
	Source               string                `json:"Source"`
	Filtered             bool                  `json:"Filtered"`
}

type AvailabilitySegment

type AvailabilitySegment struct {
	ID                 string    `json:"ID"`
	RouteID            string    `json:"RouteID"`
	AvailabilityID     string    `json:"AvailabilityID"`
	AvailabilityTripID string    `json:"AvailabilityTripID"`
	FlightNumber       string    `json:"FlightNumber"`
	Distance           int       `json:"Distance"`
	FareClass          string    `json:"FareClass"`
	AircraftName       string    `json:"AircraftName"`
	AircraftCode       string    `json:"AircraftCode"`
	OriginAirport      string    `json:"OriginAirport"`
	DestinationAirport string    `json:"DestinationAirport"`
	DepartsAt          time.Time `json:"DepartsAt"`
	ArrivesAt          time.Time `json:"ArrivesAt"`
	CreatedAt          time.Time `json:"CreatedAt"`
	UpdatedAt          time.Time `json:"UpdatedAt"`
	Source             string    `json:"Source"`
	Cabin              string    `json:"Cabin"`
	Order              int       `json:"Order"`
}
type BookingLink struct {
	Label   string `json:"label"`
	Link    string `json:"link"`
	Primary bool   `json:"primary"`
}

type Cabin

type Cabin string
const (
	Economy  Cabin = "economy"
	Business Cabin = "business"
	First    Cabin = "first"
)

type CachedSearchData

type CachedSearchData struct {
	ID                string    `json:"ID"`
	RouteID           string    `json:"RouteID"`
	Route             Route     `json:"Route"`
	Date              string    `json:"Date"`
	ParsedDate        time.Time `json:"ParsedDate"`
	YAvailable        bool      `json:"YAvailable"`
	WAvailable        bool      `json:"WAvailable"`
	JAvailable        bool      `json:"JAvailable"`
	FAvailable        bool      `json:"FAvailable"`
	YMileageCost      string    `json:"YMileageCost"`
	WMileageCost      string    `json:"WMileageCost"`
	JMileageCost      string    `json:"JMileageCost"`
	FMileageCost      string    `json:"FMileageCost"`
	YMileageCostRaw   int       `json:"YMileageCostRaw"`
	WMileageCostRaw   int       `json:"WMileageCostRaw"`
	JMileageCostRaw   int       `json:"JMileageCostRaw"`
	FMileageCostRaw   int       `json:"FMileageCostRaw"`
	TaxesCurrency     string    `json:"TaxesCurrency"`
	YTotalTaxes       int       `json:"YTotalTaxes"`
	WTotalTaxes       int       `json:"WTotalTaxes"`
	JTotalTaxes       int       `json:"JTotalTaxes"`
	FTotalTaxes       int       `json:"FTotalTaxes"`
	YRemainingSeats   int       `json:"YRemainingSeats"`
	WRemainingSeats   int       `json:"WRemainingSeats"`
	JRemainingSeats   int       `json:"JRemainingSeats"`
	FRemainingSeats   int       `json:"FRemainingSeats"`
	YAirlines         string    `json:"YAirlines"`
	WAirlines         string    `json:"WAirlines"`
	JAirlines         string    `json:"JAirlines"`
	FAirlines         string    `json:"FAirlines"`
	Source            string    `json:"Source"`
	CreatedAt         time.Time `json:"CreatedAt"`
	UpdatedAt         time.Time `json:"UpdatedAt"`
	AvailabilityTrips string    `json:"AvailabilityTrips"`
}

type CachedSearchResponse

type CachedSearchResponse struct {
	Data    []CachedSearchData `json:"data"`
	Count   int                `json:"count"`
	HasMore bool               `json:"hasMore"`
	Cursor  int64              `json:"cursor"`
}

type Coordinates

type Coordinates struct {
	Lat float64 `json:"Lat"`
	Lon float64 `json:"Lon"`
}

type Route

type Route struct {
	ID                 string `json:"ID"`
	OriginAirport      string `json:"OriginAirport"`
	OriginRegion       string `json:"OriginRegion"`
	DestinationAirport string `json:"DestinationAirport"`
	DestinationRegion  string `json:"DestinationRegion"`
	NumDaysOut         int    `json:"NumDaysOut"`
	Distance           int    `json:"Distance"`
	Source             string `json:"Source"`
}

type SeatsAeroClient

type SeatsAeroClient struct {
	// contains filtered or unexported fields
}

func New

func New(apiKey string) *SeatsAeroClient

func (*SeatsAeroClient) CachedSearch

func (c *SeatsAeroClient) CachedSearch(origin, dest string, cabin Cabin, startDate, endDate string) (CachedSearchResponse, error)

func (*SeatsAeroClient) TripSearch

func (c *SeatsAeroClient) TripSearch(id string) (Trip, error)

type Trip

type Trip struct {
	Data                   []AvailabilityData `json:"data"`
	OriginCoordinates      Coordinates        `json:"origin_coordinates"`
	DestinationCoordinates Coordinates        `json:"destination_coordinates"`
	BookingLinks           []BookingLink      `json:"booking_links"`
	RevalidationID         string             `json:"revalidation_id"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL