Created
March 5, 2024 07:46
-
-
Save ChristianSch/de9f92697dd19cc78c0a31b224e3359f to your computer and use it in GitHub Desktop.
oapi-codegen lufthansa
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Package go-lufthansa provides primitives to interact with the openapi HTTP API. | |
// | |
// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT. | |
package go-lufthansa | |
import ( | |
"bytes" | |
"compress/gzip" | |
"context" | |
"encoding/base64" | |
"encoding/json" | |
"encoding/xml" | |
"errors" | |
"fmt" | |
"gopkg.in/yaml.v2" | |
"io" | |
"os" | |
"mime" | |
"mime/multipart" | |
"net/http" | |
"net/url" | |
"path" | |
"strings" | |
"time" | |
"github.com/oapi-codegen/runtime" | |
strictecho "github.com/oapi-codegen/runtime/strictmiddleware/echo" | |
strictgin "github.com/oapi-codegen/runtime/strictmiddleware/gin" | |
strictiris "github.com/oapi-codegen/runtime/strictmiddleware/iris" | |
strictnethttp "github.com/oapi-codegen/runtime/strictmiddleware/nethttp" | |
openapi_types "github.com/oapi-codegen/runtime/types" | |
"github.com/getkin/kin-openapi/openapi3" | |
"github.com/go-chi/chi/v5" | |
"github.com/labstack/echo/v4" | |
"github.com/gin-gonic/gin" | |
"github.com/gofiber/fiber/v2" | |
"github.com/kataras/iris/v12" | |
"github.com/kataras/iris/v12/core/router" | |
"github.com/gorilla/mux" | |
) | |
const ( | |
BearerScopes = "Bearer.Scopes" | |
) | |
// Defines values for MessageLevel. | |
const ( | |
ERROR MessageLevel = "ERROR" | |
INFO MessageLevel = "INFO" | |
WARNING MessageLevel = "WARNING" | |
) | |
// Defines values for TimeMode. | |
const ( | |
LT TimeMode = "LT" | |
UTC TimeMode = "UTC" | |
) | |
// AircraftType The fleet type identifier 3 characters, can contain letters and numbers. | |
type AircraftType = string | |
// Airline The airline code of the flight | |
type Airline = string | |
// Airport Airport represented by a 3 letter IATA airport code | |
type Airport = string | |
// DataElement A data element is an additional flight attribute as defined in SSIM, Chapter 2 dealing with a variety of characteristics, e.g.: | |
// * Traffic Restriction: 8 | |
// * Codeshare - Duplicate leg cross-reference: 10 | |
// * Codeshare - Operational leg cross-reference: 50 | |
// * Departure Terminal: 99 | |
// * Arrival Terminal: 98 | |
// * Passenger Reservation Booking Designator (PRBD): 106 | |
// * Meal service note: 109 | |
// * Inflight Service: 503 | |
// * Electronic Ticket Indicator: 505 | |
// * etc. | |
type DataElement struct { | |
// EndLegSequenceNumber The sequence number of the leg where data element offpoint belongs to | |
EndLegSequenceNumber int`json:"endLegSequenceNumber"` | |
// Id The data element identifier - see SSIM, Chapter 2 for additional information | |
Id int`json:"id"` | |
// StartLegSequenceNumber The sequence number of the leg where data element boardpoint belongs to | |
StartLegSequenceNumber int`json:"startLegSequenceNumber"` | |
// Value The data element value itself | |
Value *string`json:"value,omitempty"` | |
} | |
// DaysOfOperation String representation of the days of operation (weekdays) in the format 'fffffff' with whitespace padding | |
type DaysOfOperation = string | |
// ErrorResponse defines model for ErrorResponse. | |
type ErrorResponse struct { | |
HttpStatus *int`json:"httpStatus,omitempty"` | |
Messages *[]Message`json:"messages,omitempty"` | |
TechnicalMessages *[]TechnicalMessage`json:"technicalMessages,omitempty"` | |
} | |
// FlightAggregate A FlightAggregate is a date-wise aggregation of otherwise single-dated flights. I.e. flights with identical attributes are aggregated into periods of operation. | |
type FlightAggregate struct { | |
// Airline The airline code of the flight | |
Airline *Airline`json:"airline,omitempty"` | |
// DataElements The data elements | |
DataElements *[]DataElement`json:"dataElements,omitempty"` | |
// FlightNumber The flight number | |
FlightNumber *FlightNumber`json:"flightNumber,omitempty"` | |
// Legs The legs | |
Legs *[]Leg`json:"legs,omitempty"` | |
// PeriodOfOperationLT The combination of start date, end date and a weekday pattern | |
PeriodOfOperationLT *PeriodOfOperation`json:"periodOfOperationLT,omitempty"` | |
// PeriodOfOperationUTC The combination of start date, end date and a weekday pattern | |
PeriodOfOperationUTC *PeriodOfOperation`json:"periodOfOperationUTC,omitempty"` | |
// Suffix Operational suffix. One character or empty string. | |
Suffix *Suffix`json:"suffix,omitempty"` | |
} | |
// FlightNumber The flight number | |
type FlightNumber = int | |
// FlightResponse defines model for FlightResponse. | |
type FlightResponse = []FlightAggregate | |
// Leg A flight's leg is a smaller part of an overall journey which involves landing at an intermediate airport | |
type Leg struct { | |
// AircraftArrivalTimeDateDiffLT The date difference between the flight LT date and the aircraft arrival time of this leg in days. | |
AircraftArrivalTimeDateDiffLT *int`json:"aircraftArrivalTimeDateDiffLT,omitempty"` | |
// AircraftArrivalTimeDateDiffUTC The date difference between the flight UTC date and the aircraftarrival time of this leg in days. | |
AircraftArrivalTimeDateDiffUTC *int`json:"aircraftArrivalTimeDateDiffUTC,omitempty"` | |
// AircraftArrivalTimeLT The LT Aircraft Scheduled Time of Arrival for this leg in minutes | |
AircraftArrivalTimeLT *int`json:"aircraftArrivalTimeLT,omitempty"` | |
// AircraftArrivalTimeUTC The UTC Aircraft Scheduled Time of Arrival for this leg in minutes | |
AircraftArrivalTimeUTC *int`json:"aircraftArrivalTimeUTC,omitempty"` | |
// AircraftArrivalTimeVariation The arrival time difference between the LT and UTC time in minutes. | |
AircraftArrivalTimeVariation *int`json:"aircraftArrivalTimeVariation,omitempty"` | |
// AircraftConfigurationVersion The Aircraft Configuration/Version. | |
AircraftConfigurationVersion *string`json:"aircraftConfigurationVersion,omitempty"` | |
// AircraftDepartureTimeDateDiffLT The date difference between the flight LT date and the aircraft departure time of this leg in days. | |
AircraftDepartureTimeDateDiffLT *int`json:"aircraftDepartureTimeDateDiffLT,omitempty"` | |
// AircraftDepartureTimeDateDiffUTC The date difference between the flight UTC date and the aircraft departure time of this leg in days. | |
AircraftDepartureTimeDateDiffUTC *int`json:"aircraftDepartureTimeDateDiffUTC,omitempty"` | |
// AircraftDepartureTimeLT The LT Aircraft Scheduled Time of Departure for this leg in minutes | |
AircraftDepartureTimeLT *int`json:"aircraftDepartureTimeLT,omitempty"` | |
// AircraftDepartureTimeUTC The UTC Aircraft Scheduled Time of Departure for this leg in minutes | |
AircraftDepartureTimeUTC *int`json:"aircraftDepartureTimeUTC,omitempty"` | |
// AircraftDepartureTimeVariation The departure time difference between the LT and UTC time in minutes. | |
AircraftDepartureTimeVariation *int`json:"aircraftDepartureTimeVariation,omitempty"` | |
// AircraftOwner The aircraft owner or administrative carrier (an airline code) of the leg | |
AircraftOwner *Airline`json:"aircraftOwner,omitempty"` | |
// AircraftType The fleet type identifier 3 characters, can contain letters and numbers. | |
AircraftType AircraftType`json:"aircraftType"` | |
// Destination The arrival airport code | |
Destination Airport`json:"destination"` | |
// Op Signals whether this is an operating or a marketing leg | |
Op *bool`json:"op,omitempty"` | |
// Origin The departure airport code | |
Origin Airport`json:"origin"` | |
// Registration Aircraft Registration Information | |
Registration *string`json:"registration,omitempty"` | |
// SequenceNumber The sequence number of this leg in the associated itinerary | |
SequenceNumber int`json:"sequenceNumber"` | |
// ServiceType The service type of the leg. An uppercase letter. | |
ServiceType ServiceType`json:"serviceType"` | |
} | |
// Message defines model for Message. | |
type Message struct { | |
// Level The level of messages retured by the REST API to the Client | |
Level *MessageLevel`json:"level,omitempty"` | |
// Text Message text | |
Text *string`json:"text,omitempty"` | |
} | |
// MessageLevel The level of messages retured by the REST API to the Client | |
type MessageLevel string | |
// PeriodOfOperation The combination of start date, end date and a weekday pattern | |
type PeriodOfOperation struct { | |
// DaysOfOperation String representation of the days of operation (weekdays) in the format 'fffffff' with whitespace padding | |
DaysOfOperation DaysOfOperation`json:"daysOfOperation"` | |
// EndDate The start date of this period in the format 'DDMMMYY' | |
EndDate SSIMDate`json:"endDate"` | |
// StartDate The start date of this period in the format 'DDMMMYY' | |
StartDate SSIMDate`json:"startDate"` | |
} | |
// SSIMDate A date represented in the format 'DDMMMYY' | |
type SSIMDate = string | |
// ServiceType Service type identifying whether the flight is a passenger or cargo flight (or something else). An uppercase letter. | |
type ServiceType = string | |
// Suffix Operational suffix. One character or empty string. | |
type Suffix = string | |
// TechnicalMessage defines model for TechnicalMessage. | |
type TechnicalMessage struct { | |
// Text Message text | |
Text *string`json:"text,omitempty"` | |
} | |
// TimeMode The intended time mode. Either Universal Time Coordinated (UTC) or Local Time (LT) | |
type TimeMode string | |
// AircraftTypes defines model for aircraftTypes. | |
type AircraftTypes = []AircraftType | |
// Airlines defines model for airlines. | |
type Airlines = []Airline | |
// Destination Airport represented by a 3 letter IATA airport code | |
type Destination = Airport | |
// EndDate A date represented in the format 'DDMMMYY' | |
type EndDate = SSIMDate | |
// FlightNumberRanges defines model for flightNumberRanges. | |
type FlightNumberRanges = string | |
// Origin Airport represented by a 3 letter IATA airport code | |
type Origin = Airport | |
// StartDate A date represented in the format 'DDMMMYY' | |
type StartDate = SSIMDate | |
// GetFlightschedulesParams defines parameters for GetFlightschedules. | |
type GetFlightschedulesParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// GetFlightschedulesCargoParams defines parameters for GetFlightschedulesCargo. | |
type GetFlightschedulesCargoParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// GetFlightschedulesPassengerParams defines parameters for GetFlightschedulesPassenger. | |
type GetFlightschedulesPassengerParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// RequestEditorFn is the function signature for the RequestEditor callback function | |
type RequestEditorFn func(ctx context.Context, req *http.Request) error | |
// Doer performs HTTP requests. | |
// | |
// The standard http.Client implements this interface. | |
type HttpRequestDoer interface { | |
Do(req *http.Request) (*http.Response, error) | |
} | |
// Client which conforms to the OpenAPI3 specification for this service. | |
type Client struct { | |
// The endpoint of the server conforming to this interface, with scheme, | |
// https://api.deepmap.com for example. This can contain a path relative | |
// to the server, such as https://api.deepmap.com/dev-test, and all the | |
// paths in the swagger spec will be appended to the server. | |
Server string | |
// Doer for performing requests, typically a *http.Client with any | |
// customized settings, such as certificate chains. | |
Client HttpRequestDoer | |
// A list of callbacks for modifying requests which are generated before sending over | |
// the network. | |
RequestEditors []RequestEditorFn | |
} | |
// ClientOption allows setting custom parameters during construction | |
type ClientOption func(*Client) error | |
// Creates a new Client, with reasonable defaults | |
func NewClient(server string, opts ...ClientOption) (*Client, error) { | |
// create a client with sane default values | |
client := Client{ | |
Server: server, | |
} | |
// mutate client and add all optional params | |
for _, o := range opts { | |
if err := o(&client); err != nil { | |
return nil, err | |
} | |
} | |
// ensure the server URL always has a trailing slash | |
if !strings.HasSuffix(client.Server, "/") { | |
client.Server += "/" | |
} | |
// create httpClient, if not already present | |
if client.Client == nil { | |
client.Client = &http.Client{} | |
} | |
return &client, nil | |
} | |
// WithHTTPClient allows overriding the default Doer, which is | |
// automatically created using http.Client. This is useful for tests. | |
func WithHTTPClient(doer HttpRequestDoer) ClientOption { | |
return func(c *Client) error { | |
c.Client = doer | |
return nil | |
} | |
} | |
// WithRequestEditorFn allows setting up a callback function, which will be | |
// called right before sending the request. This can be used to mutate the request. | |
func WithRequestEditorFn(fn RequestEditorFn) ClientOption { | |
return func(c *Client) error { | |
c.RequestEditors = append(c.RequestEditors, fn) | |
return nil | |
} | |
} | |
// The interface specification for the client above. | |
type ClientInterface interface { | |
// GetFlightschedules request | |
GetFlightschedules(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
// GetFlightschedulesCargo request | |
GetFlightschedulesCargo(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
// GetFlightschedulesPassenger request | |
GetFlightschedulesPassenger(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
} | |
func (c *Client) GetFlightschedules(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
func (c *Client) GetFlightschedulesCargo(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesCargoRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
func (c *Client) GetFlightschedulesPassenger(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesPassengerRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
// NewGetFlightschedulesRequest generates requests for GetFlightschedules | |
func NewGetFlightschedulesRequest(server string, params *GetFlightschedulesParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
// NewGetFlightschedulesCargoRequest generates requests for GetFlightschedulesCargo | |
func NewGetFlightschedulesCargoRequest(server string, params *GetFlightschedulesCargoParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules/cargo") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
// NewGetFlightschedulesPassengerRequest generates requests for GetFlightschedulesPassenger | |
func NewGetFlightschedulesPassengerRequest(server string, params *GetFlightschedulesPassengerParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules/passenger") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { | |
for _, r := range c.RequestEditors { | |
if err := r(ctx, req); err != nil { | |
return err | |
} | |
} | |
for _, r := range additionalEditors { | |
if err := r(ctx, req); err != nil { | |
return err | |
} | |
} | |
return nil | |
} | |
// ClientWithResponses builds on ClientInterface to offer response payloads | |
type ClientWithResponses struct { | |
ClientInterface | |
} | |
// NewClientWithResponses creates a new ClientWithResponses, which wraps | |
// Client with return type handling | |
func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) { | |
client, err := NewClient(server, opts...) | |
if err != nil { | |
return nil, err | |
} | |
return &ClientWithResponses{client}, nil | |
} | |
// WithBaseURL overrides the baseURL. | |
func WithBaseURL(baseURL string) ClientOption { | |
return func(c *Client) error { | |
newBaseURL, err := url.Parse(baseURL) | |
if err != nil { | |
return err | |
} | |
c.Server = newBaseURL.String() | |
return nil | |
} | |
} | |
// ClientWithResponsesInterface is the interface specification for the client with responses above. | |
type ClientWithResponsesInterface interface { | |
// GetFlightschedulesWithResponse request | |
GetFlightschedulesWithResponse(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*GetFlightschedulesResponse, error) | |
// GetFlightschedulesCargoWithResponse request | |
GetFlightschedulesCargoWithResponse(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*GetFlightschedulesCargoResponse, error) | |
// GetFlightschedulesPassengerWithResponse request | |
GetFlightschedulesPassengerWithResponse(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*GetFlightschedulesPassengerResponse, error) | |
} | |
type GetFlightschedulesResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
type GetFlightschedulesCargoResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesCargoResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesCargoResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
type GetFlightschedulesPassengerResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesPassengerResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesPassengerResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
// GetFlightschedulesWithResponse request returning *GetFlightschedulesResponse | |
func (c *ClientWithResponses) GetFlightschedulesWithResponse(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*GetFlightschedulesResponse, error){ | |
rsp, err := c.GetFlightschedules(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesResponse(rsp) | |
} | |
// GetFlightschedulesCargoWithResponse request returning *GetFlightschedulesCargoResponse | |
func (c *ClientWithResponses) GetFlightschedulesCargoWithResponse(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*GetFlightschedulesCargoResponse, error){ | |
rsp, err := c.GetFlightschedulesCargo(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesCargoResponse(rsp) | |
} | |
// GetFlightschedulesPassengerWithResponse request returning *GetFlightschedulesPassengerResponse | |
func (c *ClientWithResponses) GetFlightschedulesPassengerWithResponse(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*GetFlightschedulesPassengerResponse, error){ | |
rsp, err := c.GetFlightschedulesPassenger(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesPassengerResponse(rsp) | |
} | |
// ParseGetFlightschedulesResponse parses an HTTP response from a GetFlightschedulesWithResponse call | |
func ParseGetFlightschedulesResponse(rsp *http.Response) (*GetFlightschedulesResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ParseGetFlightschedulesCargoResponse parses an HTTP response from a GetFlightschedulesCargoWithResponse call | |
func ParseGetFlightschedulesCargoResponse(rsp *http.Response) (*GetFlightschedulesCargoResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesCargoResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ParseGetFlightschedulesPassengerResponse parses an HTTP response from a GetFlightschedulesPassengerWithResponse call | |
func ParseGetFlightschedulesPassengerResponse(rsp *http.Response) (*GetFlightschedulesPassengerResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesPassengerResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ServerInterface represents all server handlers. | |
type ServerInterface interface { | |
// Search all flights | |
// (GET /flightschedules) | |
GetFlightschedules(ctx echo.Context, params GetFlightschedulesParams) error | |
// Returns cargo flights | |
// (GET /flightschedules/cargo) | |
GetFlightschedulesCargo(ctx echo.Context, params GetFlightschedulesCargoParams) error | |
// Returns passenger flights | |
// (GET /flightschedules/passenger) | |
GetFlightschedulesPassenger(ctx echo.Context, params GetFlightschedulesPassengerParams) error | |
} | |
// ServerInterfaceWrapper converts echo contexts to parameters. | |
type ServerInterfaceWrapper struct { | |
Handler ServerInterface | |
} | |
// GetFlightschedules converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedules (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedules(ctx, params) | |
return err | |
} | |
// GetFlightschedulesCargo converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedulesCargo (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesCargoParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedulesCargo(ctx, params) | |
return err | |
} | |
// GetFlightschedulesPassenger converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedulesPassenger (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesPassengerParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedulesPassenger(ctx, params) | |
return err | |
} | |
// This is a simple interface which specifies echo.Route addition functions which | |
// are present on both echo.Echo and echo.Group, since we want to allow using | |
// either of them for path registration | |
type EchoRouter interface { | |
CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
} | |
// RegisterHandlers adds each server route to the EchoRouter. | |
func RegisterHandlers(router EchoRouter, si ServerInterface) { | |
RegisterHandlersWithBaseURL(router, si, "") | |
} | |
// Registers handlers, and prepends BaseURL to the paths, so that the paths | |
// can be served under a prefix. | |
func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) { | |
wrapper := ServerInterfaceWrapper{ | |
Handler: si, | |
} | |
router.GET(baseURL + "/flightschedules", wrapper.GetFlightschedules) | |
router.GET(baseURL + "/flightschedules/cargo", wrapper.GetFlightschedulesCargo) | |
router.GET(baseURL + "/flightschedules/passenger", wrapper.GetFlightschedulesPassenger) | |
} | |
// Base64 encoded, gzipped, json marshaled Swagger object | |
var swaggerSpec = []string{ | |
"H4sIAAAAAAAC/+xbbXPbtpP/Kju8zsTO0LT8kOSsV6faSc8dO8lYSju92DcDkUsJDQiwAChHk+q7/2cB", | |
"PkmiLMVN0xd1X3QscgH8sNj97WKX+RLEKsuVRGlN0P8S5EyzDC1q94txHWuW2tE8R/cgQRNrnluuZNAP", | |
"RlMEwY0FlUIlCtbJhgF+zoVKMOhbXWAYcBrwR4F6HoSBZBkG/ZXpw8DEU8wYrcMtZm7BHzSmQT/4r8MG", | |
"5qEXM4eD1vBgEQa0Ms2qNZsHi0VI8wsud0BOUhCr5CuA+4nDQOMfBdeYVOJfvweaqRN+wubmXfouR808", | |
"7K5dkBDtQlViIfAII7Ctd/T3PeKnCH6dcosmZzFCzpIEE7AKXkE8ZdpE8DqaRH14BnByCi/hWdC9+VVY", | |
"D+ngoa1frMzjtozGcrlhu0NkOp5CqjSkgk+m1gDTms+4nACzYKfcgLFucAQnINBa1HA5GA3ojHOlrTvj", | |
"aNO+WmvvuoeBn9dhR5lcMIvdx5Sj5ioBlAkkzGIEw+HltfuT9pMxCxcX19fXv/22AVw1+WOVTcu5CQip", | |
"197bIhujvmFysslDvBxIJwiaJCHlgrRqrOZyEgF6kzk46vVCOKb/HfV6B+6Pk17vYJMNdSBo76R0Bb+I", | |
"g6w0n/DdbCLBnGlLRpFqlf1lsyhXfoxFGMu03WoTTupxVtEs8E3swvIMrx31dcGlt5CpBCtKKfG3ycds", | |
"AFrP/Fico2qChVOsf0qDloLABitG9GEJeILS8pSjhhNHeiymUBdCzCTESlrGZWkgBphMStM3kQsLLMsF", | |
"Bv1Xp6dhkDMSoiX+/2Pv4Gxw8H93X04WPwThqu2GQUXxneDawafSqzfk9pLB1f8G3Wseh5tXdXa4tmr5", | |
"AjTmGg1KiwmM58AecI0lKG9uBitYHtr8BbPstcAMZRcUMnUG6N8DJ50DSxJO75mo+IdZq/m4sAiMvDvl", | |
"EhPg0jlLCOdTlhPqY0iQCXL7e26nwGDGNEc7J63WR82N5bEJPW3dyucw0ixNeQw3SJhjWrgP/01vzikd", | |
"mDKNcAAXRS54TG4pcAKxVsYcaExRo4yxD0e91QF1VGOie8gLN+TCUVWhEUaoMy6Z6MPZGb0ZUGBjov3c", | |
"oXrPjEE5QU2IUc/cIvCjUp9o5xdo+EQyqzTsvb/58WKfsL2kcdfIBNAAHiNIZR1qt9KlLNU89G8J2wm9", | |
"eC0wtlpJHsOIx5/QwqVMSAtKk8wLkkEbR7dEjrkmDrDchxKUyRVOhvhHQbv1NN9t/6aUqYJM6QKks/sp", | |
"aly2EJWmueLSwhiFkhMDVgVhkHHJsyIL+ke1AXJpcYKaLJAnmxKntuk1xHAABnHNtijAtCyTS8/PPlfI", | |
"2GcP4OzsbBscR9l/i3LGiunkq9UzY6LAHTTk5IBbgyJd9v+9ioz+vL01fx7+ebD/vIMKFm3m/7hJDWG3", | |
"6bhTvKvnVOPfMbaeXrakyEO3fEN23l9KRa7lzrBHaTI93ieCcWTs4/Cz1P/3zLPL/XIeTTtsceTR8cnp", | |
"i5ev1hgb7r686qbJ11orfYMmV9K401j2p6m1+dAyW5hWdtQ6xAyNYWUat9O149oPWL92hIHFeCp5zMT1", | |
"1046WhnZealZO8I3jn0Gk4nGSWeqNIAVERcoXJZ0cM8NAitflCer7BS1e2G4nAg8IMmkSg8juKTrUZUs", | |
"utP03h8z0YQaulo0M7t4Y1WZ8SzbTLTGfqwJ+Dte/ZImSprtvuiSrF0OpB18O066nYRvm+pNW3YRBgIn", | |
"m67V9GZHgFc46QLm1dzy66vRtpnerw7pnOfD6PxRE5kiTfnnrbm0l3rAyh8i+6XL1kpQ2RpV/PRtAtlJ", | |
"/6u+13EWdEQdLunRPjMuGDl/NBkTAjVQRuPKKhLUDDUTAn5XhZY4J9aMp8DlTIkZGhBMJuXdnUlyMNQZ", | |
"Jpw8vMw+u1zLZftlekS3Arq9XPA09TbS6TkICU/L1AvGaO8RZSvThquRl6KM3/qk3NeyWJmFuauPCxq8", | |
"3LF0wSNqn9NRr3VKB53H9AD80jQfhf/D6Lx7A98B/ya1X42guprBMJ5iUghMYFQCqdJbSqvaoDIuiXyX", | |
"YJ2e9raZfweujfokZf2jyH5hmj9Q0Fs6sw3nfjVyR01bcWINvih4CMW5kimfFJ7YfkFtNqKoNbQ05LAc", | |
"E63fAHsHZ3fPO3ObavH6svN3e21S36q+td13buFv8dzvtYnHuW9zb93JTU7a8au3M7bHuvD3QbfFjVfO", | |
"7xs78rt76fMIJsS7NOh/3DHVvAu7a1BelYpmBXfTJYUYS14/Q4iJk1DDHpNLBav91o20ja6qxX1N82al", | |
"8r/zvnyxtXtfJZMulbIWYaDyjnsin0gmDN2r6frgrcYXpMpMX06cZiBj+hO6n7Tr+pDGSglkLltsatXf", | |
"YheNIa3uQ+OkPKMuI6wd5KYlBpdLhYudOdw8tlrR+J5jN2NUzP19ynKJmrki8ZaKia9LVUa1m06HrUHd", | |
"eq2KYa4w3NhxBAMJRZ6jjpnBsiQardcvVgsUdZtgpY3UwrHiIF31jOrmvFYBEDhDseOt/srJuqv8546q", | |
"aykF7m1XnWYTqqsKQ9elb4aCtFhVIkAj2awrLZNmb14PRzB4fwlWud/ngtOtNAxQ0sF/DC7fvnkXhMGv", | |
"g5u3l29/CsLg9c3Nu5uWkhpjXL+idWKKVTYuD4KQNW2WsG7DOfJlUBZ9oHKH1VtHRyP2qxqbS73BHe23", | |
"7st0G2+9mdrNym7MStmq7B89C1bbUf8UjK46YNnBanqcqwrvcpUaWndbAZcaHJvgtBsbvaOfB2+PztYb", | |
"LXdfjhdVk6P63cmSw2WmWu1UtvimrDfPXbuiDjl1Wugu1Hld6leaQvBEVa/3lAajMrRTGo/C4P4G2mrv", | |
"7+euts3Rhp3UBY/lTbT7Gr4oEsE7ygaqBgthxSy386pD3LVoL9yw7FoFcY0HvxWljR5sdVL0ke7riKrn", | |
"GcFr7k7pg+Qz1IYJn26eK6UTYhlMYO/D6HyfFHCl4ur93tVov8VylNKGwdWog9dcpIsLze2cUtrM7/dH", | |
"ZNoH3FSoe/codtR5rtHZEBPuoYmV+0RHFkKEgVWfUH7QIui70rHpHx6ynEeiSO2UScOiWGWHs6NDxQo7", | |
"PXTSS2qix8e+1cplqtyqSloWO91jxjhNTVOaIqec5H+Wpm76vlfVY/hJqyJ3EWDoh5RJ35LmuXESuVYz", | |
"nqCBevgzU9m+KdP9dgsmupW3cgCm/BagkLE3UW7nzpVmjAs2FghjZjABJYG1kpRYc4uas/6tBHheJbjG", | |
"/1qqyvlHnvQoclRhxD9f6yb4xz4xcPKt1KBeq/XRFD27lReYo6+LEc44RmOAW0BJOzAUP2cc71vsUJay", | |
"wyWOMGSHY2WnTjdNfbEMzBITV+BeL6JjEoEbwN1HHkXsU0+Kk01tPFVCqHvHWMYymTCdmHKHKZeuSWaq", | |
"U6xTANdWHpbi9bXNtFNSuGayYAL2Vtpv+77JaLn1LeiyYVlPMXh/GYTBrCpoBEdRL+r5VB8ly3nQD07c", | |
"I0dGU+cxh6VCqkno2QQ7yOXGKcy0DQ7YWBUWmBC1WhvTqq2ttMfKviIYqgzrn07/GWnDKj2nc83YJwQG", | |
"MU1bpkmD95fEoLVJXSZBP/gJ7ZsV7OHSh3sbgnojclh/wLYIt8p2fKuzw6gmsO8gXEX+HUSTteRq65D6", | |
"45MdZMs0fhcgrTx/B/Hlbx0pndJltd5Z3nGvV7Fs+akEy/03B1zJw9+Nzzp3+1ZmpRmwWKwx7bBwvJIW", | |
"omErcpfj3svviOIGTSEsWF3ImIiHEJx+Qz0sN1U7APzCBE+8QyPJegBH3w/AoLBT33p0IOrE2OE4/X44", | |
"SkKVykKqCukAvPieJ0HJMerqFFqpkCOzKgn6eEd+Y4osY3refPzXomEKEmxi3M2iJMfgjuZbZftDFyw3", | |
"cr5LRZrPAnQZAurhoFG4nM+q1bArxTy6lZcSXCLOWim9qxwlLioDM+U4ippNLOcW7rkQwIRRMMY6WO8S", | |
"BM7djp4iwVMkeIoET5Hg3xUJqhx9iYt3DwY1Af/1gED8T1Fh7X72zwSF+nvRp8DwFBieAsNTYPiXBoY1", | |
"Ot4QHMp+Y8WRxfYaqp/voKnFEIBy6i/dSuyqYbb+UU8FZ3G3+E8AAAD//7sEB82fOQAA", | |
} | |
// GetSwagger returns the content of the embedded swagger specification file | |
// or error if failed to decode | |
func decodeSpec() ([]byte, error) { | |
zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) | |
if err != nil { | |
return nil, fmt.Errorf("error base64 decoding spec: %w", err) | |
} | |
zr, err := gzip.NewReader(bytes.NewReader(zipped)) | |
if err != nil { | |
return nil, fmt.Errorf("error decompressing spec: %w", err) | |
} | |
var buf bytes.Buffer | |
_, err = buf.ReadFrom(zr) | |
if err != nil { | |
return nil, fmt.Errorf("error decompressing spec: %w", err) | |
} | |
return buf.Bytes(), nil | |
} | |
var rawSpec = decodeSpecCached() | |
// a naive cached of a decoded swagger spec | |
func decodeSpecCached() func() ([]byte, error) { | |
data, err := decodeSpec() | |
return func() ([]byte, error) { | |
return data, err | |
} | |
} | |
// Constructs a synthetic filesystem for resolving external references when loading openapi specifications. | |
func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { | |
res := make(map[string]func() ([]byte, error)) | |
if len(pathToFile) > 0 { | |
res[pathToFile] = rawSpec | |
} | |
return res | |
} | |
// GetSwagger returns the Swagger specification corresponding to the generated code | |
// in this file. The external references of Swagger specification are resolved. | |
// The logic of resolving external references is tightly connected to "import-mapping" feature. | |
// Externally referenced files must be embedded in the corresponding golang packages. | |
// Urls can be supported but this task was out of the scope. | |
func GetSwagger() (swagger *openapi3.T, err error) { | |
resolvePath := PathToRawSpec("") | |
loader := openapi3.NewLoader() | |
loader.IsExternalRefsAllowed = true | |
loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { | |
pathToFile := url.String() | |
pathToFile = path.Clean(pathToFile) | |
getSpec, ok := resolvePath[pathToFile] | |
if !ok { | |
err1 := fmt.Errorf("path not found: %s", pathToFile) | |
return nil, err1 | |
} | |
return getSpec() | |
} | |
var specData []byte | |
specData, err = rawSpec() | |
if err != nil { | |
return | |
} | |
swagger, err = loader.LoadFromData(specData) | |
if err != nil { | |
return | |
} | |
return | |
} | |
: go-lufthansa.go:4:9: expected 'IDENT', found 'go' | |
~/d/go-lufthansa >>> (base) 256ms Mon Mar 4 13:58:50 2024 | |
~/d/go-lufthansa >>> oapi-codegen -package go-lufthansa swagger-spec-21516.json > lufthansa.gen.go | |
error generating code: error formatting Go code // Package go-lufthansa provides primitives to interact with the openapi HTTP API. | |
// | |
// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT. | |
package go-lufthansa | |
import ( | |
"bytes" | |
"compress/gzip" | |
"context" | |
"encoding/base64" | |
"encoding/json" | |
"encoding/xml" | |
"errors" | |
"fmt" | |
"gopkg.in/yaml.v2" | |
"io" | |
"os" | |
"mime" | |
"mime/multipart" | |
"net/http" | |
"net/url" | |
"path" | |
"strings" | |
"time" | |
"github.com/oapi-codegen/runtime" | |
strictecho "github.com/oapi-codegen/runtime/strictmiddleware/echo" | |
strictgin "github.com/oapi-codegen/runtime/strictmiddleware/gin" | |
strictiris "github.com/oapi-codegen/runtime/strictmiddleware/iris" | |
strictnethttp "github.com/oapi-codegen/runtime/strictmiddleware/nethttp" | |
openapi_types "github.com/oapi-codegen/runtime/types" | |
"github.com/getkin/kin-openapi/openapi3" | |
"github.com/go-chi/chi/v5" | |
"github.com/labstack/echo/v4" | |
"github.com/gin-gonic/gin" | |
"github.com/gofiber/fiber/v2" | |
"github.com/kataras/iris/v12" | |
"github.com/kataras/iris/v12/core/router" | |
"github.com/gorilla/mux" | |
) | |
const ( | |
BearerScopes = "Bearer.Scopes" | |
) | |
// Defines values for MessageLevel. | |
const ( | |
ERROR MessageLevel = "ERROR" | |
INFO MessageLevel = "INFO" | |
WARNING MessageLevel = "WARNING" | |
) | |
// Defines values for TimeMode. | |
const ( | |
LT TimeMode = "LT" | |
UTC TimeMode = "UTC" | |
) | |
// AircraftType The fleet type identifier 3 characters, can contain letters and numbers. | |
type AircraftType = string | |
// Airline The airline code of the flight | |
type Airline = string | |
// Airport Airport represented by a 3 letter IATA airport code | |
type Airport = string | |
// DataElement A data element is an additional flight attribute as defined in SSIM, Chapter 2 dealing with a variety of characteristics, e.g.: | |
// * Traffic Restriction: 8 | |
// * Codeshare - Duplicate leg cross-reference: 10 | |
// * Codeshare - Operational leg cross-reference: 50 | |
// * Departure Terminal: 99 | |
// * Arrival Terminal: 98 | |
// * Passenger Reservation Booking Designator (PRBD): 106 | |
// * Meal service note: 109 | |
// * Inflight Service: 503 | |
// * Electronic Ticket Indicator: 505 | |
// * etc. | |
type DataElement struct { | |
// EndLegSequenceNumber The sequence number of the leg where data element offpoint belongs to | |
EndLegSequenceNumber int`json:"endLegSequenceNumber"` | |
// Id The data element identifier - see SSIM, Chapter 2 for additional information | |
Id int`json:"id"` | |
// StartLegSequenceNumber The sequence number of the leg where data element boardpoint belongs to | |
StartLegSequenceNumber int`json:"startLegSequenceNumber"` | |
// Value The data element value itself | |
Value *string`json:"value,omitempty"` | |
} | |
// DaysOfOperation String representation of the days of operation (weekdays) in the format 'fffffff' with whitespace padding | |
type DaysOfOperation = string | |
// ErrorResponse defines model for ErrorResponse. | |
type ErrorResponse struct { | |
HttpStatus *int`json:"httpStatus,omitempty"` | |
Messages *[]Message`json:"messages,omitempty"` | |
TechnicalMessages *[]TechnicalMessage`json:"technicalMessages,omitempty"` | |
} | |
// FlightAggregate A FlightAggregate is a date-wise aggregation of otherwise single-dated flights. I.e. flights with identical attributes are aggregated into periods of operation. | |
type FlightAggregate struct { | |
// Airline The airline code of the flight | |
Airline *Airline`json:"airline,omitempty"` | |
// DataElements The data elements | |
DataElements *[]DataElement`json:"dataElements,omitempty"` | |
// FlightNumber The flight number | |
FlightNumber *FlightNumber`json:"flightNumber,omitempty"` | |
// Legs The legs | |
Legs *[]Leg`json:"legs,omitempty"` | |
// PeriodOfOperationLT The combination of start date, end date and a weekday pattern | |
PeriodOfOperationLT *PeriodOfOperation`json:"periodOfOperationLT,omitempty"` | |
// PeriodOfOperationUTC The combination of start date, end date and a weekday pattern | |
PeriodOfOperationUTC *PeriodOfOperation`json:"periodOfOperationUTC,omitempty"` | |
// Suffix Operational suffix. One character or empty string. | |
Suffix *Suffix`json:"suffix,omitempty"` | |
} | |
// FlightNumber The flight number | |
type FlightNumber = int | |
// FlightResponse defines model for FlightResponse. | |
type FlightResponse = []FlightAggregate | |
// Leg A flight's leg is a smaller part of an overall journey which involves landing at an intermediate airport | |
type Leg struct { | |
// AircraftArrivalTimeDateDiffLT The date difference between the flight LT date and the aircraft arrival time of this leg in days. | |
AircraftArrivalTimeDateDiffLT *int`json:"aircraftArrivalTimeDateDiffLT,omitempty"` | |
// AircraftArrivalTimeDateDiffUTC The date difference between the flight UTC date and the aircraftarrival time of this leg in days. | |
AircraftArrivalTimeDateDiffUTC *int`json:"aircraftArrivalTimeDateDiffUTC,omitempty"` | |
// AircraftArrivalTimeLT The LT Aircraft Scheduled Time of Arrival for this leg in minutes | |
AircraftArrivalTimeLT *int`json:"aircraftArrivalTimeLT,omitempty"` | |
// AircraftArrivalTimeUTC The UTC Aircraft Scheduled Time of Arrival for this leg in minutes | |
AircraftArrivalTimeUTC *int`json:"aircraftArrivalTimeUTC,omitempty"` | |
// AircraftArrivalTimeVariation The arrival time difference between the LT and UTC time in minutes. | |
AircraftArrivalTimeVariation *int`json:"aircraftArrivalTimeVariation,omitempty"` | |
// AircraftConfigurationVersion The Aircraft Configuration/Version. | |
AircraftConfigurationVersion *string`json:"aircraftConfigurationVersion,omitempty"` | |
// AircraftDepartureTimeDateDiffLT The date difference between the flight LT date and the aircraft departure time of this leg in days. | |
AircraftDepartureTimeDateDiffLT *int`json:"aircraftDepartureTimeDateDiffLT,omitempty"` | |
// AircraftDepartureTimeDateDiffUTC The date difference between the flight UTC date and the aircraft departure time of this leg in days. | |
AircraftDepartureTimeDateDiffUTC *int`json:"aircraftDepartureTimeDateDiffUTC,omitempty"` | |
// AircraftDepartureTimeLT The LT Aircraft Scheduled Time of Departure for this leg in minutes | |
AircraftDepartureTimeLT *int`json:"aircraftDepartureTimeLT,omitempty"` | |
// AircraftDepartureTimeUTC The UTC Aircraft Scheduled Time of Departure for this leg in minutes | |
AircraftDepartureTimeUTC *int`json:"aircraftDepartureTimeUTC,omitempty"` | |
// AircraftDepartureTimeVariation The departure time difference between the LT and UTC time in minutes. | |
AircraftDepartureTimeVariation *int`json:"aircraftDepartureTimeVariation,omitempty"` | |
// AircraftOwner The aircraft owner or administrative carrier (an airline code) of the leg | |
AircraftOwner *Airline`json:"aircraftOwner,omitempty"` | |
// AircraftType The fleet type identifier 3 characters, can contain letters and numbers. | |
AircraftType AircraftType`json:"aircraftType"` | |
// Destination The arrival airport code | |
Destination Airport`json:"destination"` | |
// Op Signals whether this is an operating or a marketing leg | |
Op *bool`json:"op,omitempty"` | |
// Origin The departure airport code | |
Origin Airport`json:"origin"` | |
// Registration Aircraft Registration Information | |
Registration *string`json:"registration,omitempty"` | |
// SequenceNumber The sequence number of this leg in the associated itinerary | |
SequenceNumber int`json:"sequenceNumber"` | |
// ServiceType The service type of the leg. An uppercase letter. | |
ServiceType ServiceType`json:"serviceType"` | |
} | |
// Message defines model for Message. | |
type Message struct { | |
// Level The level of messages retured by the REST API to the Client | |
Level *MessageLevel`json:"level,omitempty"` | |
// Text Message text | |
Text *string`json:"text,omitempty"` | |
} | |
// MessageLevel The level of messages retured by the REST API to the Client | |
type MessageLevel string | |
// PeriodOfOperation The combination of start date, end date and a weekday pattern | |
type PeriodOfOperation struct { | |
// DaysOfOperation String representation of the days of operation (weekdays) in the format 'fffffff' with whitespace padding | |
DaysOfOperation DaysOfOperation`json:"daysOfOperation"` | |
// EndDate The start date of this period in the format 'DDMMMYY' | |
EndDate SSIMDate`json:"endDate"` | |
// StartDate The start date of this period in the format 'DDMMMYY' | |
StartDate SSIMDate`json:"startDate"` | |
} | |
// SSIMDate A date represented in the format 'DDMMMYY' | |
type SSIMDate = string | |
// ServiceType Service type identifying whether the flight is a passenger or cargo flight (or something else). An uppercase letter. | |
type ServiceType = string | |
// Suffix Operational suffix. One character or empty string. | |
type Suffix = string | |
// TechnicalMessage defines model for TechnicalMessage. | |
type TechnicalMessage struct { | |
// Text Message text | |
Text *string`json:"text,omitempty"` | |
} | |
// TimeMode The intended time mode. Either Universal Time Coordinated (UTC) or Local Time (LT) | |
type TimeMode string | |
// AircraftTypes defines model for aircraftTypes. | |
type AircraftTypes = []AircraftType | |
// Airlines defines model for airlines. | |
type Airlines = []Airline | |
// Destination Airport represented by a 3 letter IATA airport code | |
type Destination = Airport | |
// EndDate A date represented in the format 'DDMMMYY' | |
type EndDate = SSIMDate | |
// FlightNumberRanges defines model for flightNumberRanges. | |
type FlightNumberRanges = string | |
// Origin Airport represented by a 3 letter IATA airport code | |
type Origin = Airport | |
// StartDate A date represented in the format 'DDMMMYY' | |
type StartDate = SSIMDate | |
// GetFlightschedulesParams defines parameters for GetFlightschedules. | |
type GetFlightschedulesParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// GetFlightschedulesCargoParams defines parameters for GetFlightschedulesCargo. | |
type GetFlightschedulesCargoParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// GetFlightschedulesPassengerParams defines parameters for GetFlightschedulesPassenger. | |
type GetFlightschedulesPassengerParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// RequestEditorFn is the function signature for the RequestEditor callback function | |
type RequestEditorFn func(ctx context.Context, req *http.Request) error | |
// Doer performs HTTP requests. | |
// | |
// The standard http.Client implements this interface. | |
type HttpRequestDoer interface { | |
Do(req *http.Request) (*http.Response, error) | |
} | |
// Client which conforms to the OpenAPI3 specification for this service. | |
type Client struct { | |
// The endpoint of the server conforming to this interface, with scheme, | |
// https://api.deepmap.com for example. This can contain a path relative | |
// to the server, such as https://api.deepmap.com/dev-test, and all the | |
// paths in the swagger spec will be appended to the server. | |
Server string | |
// Doer for performing requests, typically a *http.Client with any | |
// customized settings, such as certificate chains. | |
Client HttpRequestDoer | |
// A list of callbacks for modifying requests which are generated before sending over | |
// the network. | |
RequestEditors []RequestEditorFn | |
} | |
// ClientOption allows setting custom parameters during construction | |
type ClientOption func(*Client) error | |
// Creates a new Client, with reasonable defaults | |
func NewClient(server string, opts ...ClientOption) (*Client, error) { | |
// create a client with sane default values | |
client := Client{ | |
Server: server, | |
} | |
// mutate client and add all optional params | |
for _, o := range opts { | |
if err := o(&client); err != nil { | |
return nil, err | |
} | |
} | |
// ensure the server URL always has a trailing slash | |
if !strings.HasSuffix(client.Server, "/") { | |
client.Server += "/" | |
} | |
// create httpClient, if not already present | |
if client.Client == nil { | |
client.Client = &http.Client{} | |
} | |
return &client, nil | |
} | |
// WithHTTPClient allows overriding the default Doer, which is | |
// automatically created using http.Client. This is useful for tests. | |
func WithHTTPClient(doer HttpRequestDoer) ClientOption { | |
return func(c *Client) error { | |
c.Client = doer | |
return nil | |
} | |
} | |
// WithRequestEditorFn allows setting up a callback function, which will be | |
// called right before sending the request. This can be used to mutate the request. | |
func WithRequestEditorFn(fn RequestEditorFn) ClientOption { | |
return func(c *Client) error { | |
c.RequestEditors = append(c.RequestEditors, fn) | |
return nil | |
} | |
} | |
// The interface specification for the client above. | |
type ClientInterface interface { | |
// GetFlightschedules request | |
GetFlightschedules(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
// GetFlightschedulesCargo request | |
GetFlightschedulesCargo(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
// GetFlightschedulesPassenger request | |
GetFlightschedulesPassenger(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
} | |
func (c *Client) GetFlightschedules(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
func (c *Client) GetFlightschedulesCargo(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesCargoRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
func (c *Client) GetFlightschedulesPassenger(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesPassengerRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
// NewGetFlightschedulesRequest generates requests for GetFlightschedules | |
func NewGetFlightschedulesRequest(server string, params *GetFlightschedulesParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
// NewGetFlightschedulesCargoRequest generates requests for GetFlightschedulesCargo | |
func NewGetFlightschedulesCargoRequest(server string, params *GetFlightschedulesCargoParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules/cargo") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
// NewGetFlightschedulesPassengerRequest generates requests for GetFlightschedulesPassenger | |
func NewGetFlightschedulesPassengerRequest(server string, params *GetFlightschedulesPassengerParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules/passenger") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { | |
for _, r := range c.RequestEditors { | |
if err := r(ctx, req); err != nil { | |
return err | |
} | |
} | |
for _, r := range additionalEditors { | |
if err := r(ctx, req); err != nil { | |
return err | |
} | |
} | |
return nil | |
} | |
// ClientWithResponses builds on ClientInterface to offer response payloads | |
type ClientWithResponses struct { | |
ClientInterface | |
} | |
// NewClientWithResponses creates a new ClientWithResponses, which wraps | |
// Client with return type handling | |
func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) { | |
client, err := NewClient(server, opts...) | |
if err != nil { | |
return nil, err | |
} | |
return &ClientWithResponses{client}, nil | |
} | |
// WithBaseURL overrides the baseURL. | |
func WithBaseURL(baseURL string) ClientOption { | |
return func(c *Client) error { | |
newBaseURL, err := url.Parse(baseURL) | |
if err != nil { | |
return err | |
} | |
c.Server = newBaseURL.String() | |
return nil | |
} | |
} | |
// ClientWithResponsesInterface is the interface specification for the client with responses above. | |
type ClientWithResponsesInterface interface { | |
// GetFlightschedulesWithResponse request | |
GetFlightschedulesWithResponse(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*GetFlightschedulesResponse, error) | |
// GetFlightschedulesCargoWithResponse request | |
GetFlightschedulesCargoWithResponse(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*GetFlightschedulesCargoResponse, error) | |
// GetFlightschedulesPassengerWithResponse request | |
GetFlightschedulesPassengerWithResponse(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*GetFlightschedulesPassengerResponse, error) | |
} | |
type GetFlightschedulesResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
type GetFlightschedulesCargoResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesCargoResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesCargoResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
type GetFlightschedulesPassengerResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesPassengerResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesPassengerResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
// GetFlightschedulesWithResponse request returning *GetFlightschedulesResponse | |
func (c *ClientWithResponses) GetFlightschedulesWithResponse(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*GetFlightschedulesResponse, error){ | |
rsp, err := c.GetFlightschedules(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesResponse(rsp) | |
} | |
// GetFlightschedulesCargoWithResponse request returning *GetFlightschedulesCargoResponse | |
func (c *ClientWithResponses) GetFlightschedulesCargoWithResponse(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*GetFlightschedulesCargoResponse, error){ | |
rsp, err := c.GetFlightschedulesCargo(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesCargoResponse(rsp) | |
} | |
// GetFlightschedulesPassengerWithResponse request returning *GetFlightschedulesPassengerResponse | |
func (c *ClientWithResponses) GetFlightschedulesPassengerWithResponse(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*GetFlightschedulesPassengerResponse, error){ | |
rsp, err := c.GetFlightschedulesPassenger(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesPassengerResponse(rsp) | |
} | |
// ParseGetFlightschedulesResponse parses an HTTP response from a GetFlightschedulesWithResponse call | |
func ParseGetFlightschedulesResponse(rsp *http.Response) (*GetFlightschedulesResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ParseGetFlightschedulesCargoResponse parses an HTTP response from a GetFlightschedulesCargoWithResponse call | |
func ParseGetFlightschedulesCargoResponse(rsp *http.Response) (*GetFlightschedulesCargoResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesCargoResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ParseGetFlightschedulesPassengerResponse parses an HTTP response from a GetFlightschedulesPassengerWithResponse call | |
func ParseGetFlightschedulesPassengerResponse(rsp *http.Response) (*GetFlightschedulesPassengerResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesPassengerResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ServerInterface represents all server handlers. | |
type ServerInterface interface { | |
// Search all flights | |
// (GET /flightschedules) | |
GetFlightschedules(ctx echo.Context, params GetFlightschedulesParams) error | |
// Returns cargo flights | |
// (GET /flightschedules/cargo) | |
GetFlightschedulesCargo(ctx echo.Context, params GetFlightschedulesCargoParams) error | |
// Returns passenger flights | |
// (GET /flightschedules/passenger) | |
GetFlightschedulesPassenger(ctx echo.Context, params GetFlightschedulesPassengerParams) error | |
} | |
// ServerInterfaceWrapper converts echo contexts to parameters. | |
type ServerInterfaceWrapper struct { | |
Handler ServerInterface | |
} | |
// GetFlightschedules converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedules (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedules(ctx, params) | |
return err | |
} | |
// GetFlightschedulesCargo converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedulesCargo (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesCargoParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedulesCargo(ctx, params) | |
return err | |
} | |
// GetFlightschedulesPassenger converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedulesPassenger (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesPassengerParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedulesPassenger(ctx, params) | |
return err | |
} | |
// This is a simple interface which specifies echo.Route addition functions which | |
// are present on both echo.Echo and echo.Group, since we want to allow using | |
// either of them for path registration | |
type EchoRouter interface { | |
CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
} | |
// RegisterHandlers adds each server route to the EchoRouter. | |
func RegisterHandlers(router EchoRouter, si ServerInterface) { | |
RegisterHandlersWithBaseURL(router, si, "") | |
} | |
// Registers handlers, and prepends BaseURL to the paths, so that the paths | |
// can be served under a prefix. | |
func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) { | |
wrapper := ServerInterfaceWrapper{ | |
Handler: si, | |
} | |
router.GET(baseURL + "/flightschedules", wrapper.GetFlightschedules) | |
router.GET(baseURL + "/flightschedules/cargo", wrapper.GetFlightschedulesCargo) | |
router.GET(baseURL + "/flightschedules/passenger", wrapper.GetFlightschedulesPassenger) | |
} | |
// Base64 encoded, gzipped, json marshaled Swagger object | |
var swaggerSpec = []string{ | |
"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", | |
} | |
// GetSwagger returns the content of the embedded swagger specification file | |
// or error if failed to decode | |
func decodeSpec() ([]byte, error) { | |
zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) | |
if err != nil { | |
return nil, fmt.Errorf("error base64 decoding spec: %w", err) | |
} | |
zr, err := gzip.NewReader(bytes.NewReader(zipped)) | |
if err != nil { | |
return nil, fmt.Errorf("error decompressing spec: %w", err) | |
} | |
var buf bytes.Buffer | |
_, err = buf.ReadFrom(zr) | |
if err != nil { | |
return nil, fmt.Errorf("error decompressing spec: %w", err) | |
} | |
return buf.Bytes(), nil | |
} | |
var rawSpec = decodeSpecCached() | |
// a naive cached of a decoded swagger spec | |
func decodeSpecCached() func() ([]byte, error) { | |
data, err := decodeSpec() | |
return func() ([]byte, error) { | |
return data, err | |
} | |
} | |
// Constructs a synthetic filesystem for resolving external references when loading openapi specifications. | |
func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { | |
res := make(map[string]func() ([]byte, error)) | |
if len(pathToFile) > 0 { | |
res[pathToFile] = rawSpec | |
} | |
return res | |
} | |
// GetSwagger returns the Swagger specification corresponding to the generated code | |
// in this file. The external references of Swagger specification are resolved. | |
// The logic of resolving external references is tightly connected to "import-mapping" feature. | |
// Externally referenced files must be embedded in the corresponding golang packages. | |
// Urls can be supported but this task was out of the scope. | |
func GetSwagger() (swagger *openapi3.T, err error) { | |
resolvePath := PathToRawSpec("") | |
loader := openapi3.NewLoader() | |
loader.IsExternalRefsAllowed = true | |
loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { | |
pathToFile := url.String() | |
pathToFile = path.Clean(pathToFile) | |
getSpec, ok := resolvePath[pathToFile] | |
if !ok { | |
err1 := fmt.Errorf("path not found: %s", pathToFile) | |
return nil, err1 | |
} | |
return getSpec() | |
} | |
var specData []byte | |
specData, err = rawSpec() | |
if err != nil { | |
return | |
} | |
swagger, err = loader.LoadFromData(specData) | |
if err != nil { | |
return | |
} | |
return | |
} | |
: go-lufthansa.go:4:9: expected 'IDENT', found 'go' | |
~/d/go-lufthansa >>> oapi-codegen -package go-lufthansa swagger-spec-21516.json > lufthansa.gen.go (base) Mon Mar 4 13:59:39 2024 | |
error generating code: error formatting Go code // Package go-lufthansa provides primitives to interact with the openapi HTTP API. | |
// | |
// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT. | |
package go-lufthansa | |
import ( | |
"bytes" | |
"compress/gzip" | |
"context" | |
"encoding/base64" | |
"encoding/json" | |
"encoding/xml" | |
"errors" | |
"fmt" | |
"gopkg.in/yaml.v2" | |
"io" | |
"os" | |
"mime" | |
"mime/multipart" | |
"net/http" | |
"net/url" | |
"path" | |
"strings" | |
"time" | |
"github.com/oapi-codegen/runtime" | |
strictecho "github.com/oapi-codegen/runtime/strictmiddleware/echo" | |
strictgin "github.com/oapi-codegen/runtime/strictmiddleware/gin" | |
strictiris "github.com/oapi-codegen/runtime/strictmiddleware/iris" | |
strictnethttp "github.com/oapi-codegen/runtime/strictmiddleware/nethttp" | |
openapi_types "github.com/oapi-codegen/runtime/types" | |
"github.com/getkin/kin-openapi/openapi3" | |
"github.com/go-chi/chi/v5" | |
"github.com/labstack/echo/v4" | |
"github.com/gin-gonic/gin" | |
"github.com/gofiber/fiber/v2" | |
"github.com/kataras/iris/v12" | |
"github.com/kataras/iris/v12/core/router" | |
"github.com/gorilla/mux" | |
) | |
const ( | |
BearerScopes = "Bearer.Scopes" | |
) | |
// Defines values for MessageLevel. | |
const ( | |
ERROR MessageLevel = "ERROR" | |
INFO MessageLevel = "INFO" | |
WARNING MessageLevel = "WARNING" | |
) | |
// Defines values for TimeMode. | |
const ( | |
LT TimeMode = "LT" | |
UTC TimeMode = "UTC" | |
) | |
// AircraftType The fleet type identifier 3 characters, can contain letters and numbers. | |
type AircraftType = string | |
// Airline The airline code of the flight | |
type Airline = string | |
// Airport Airport represented by a 3 letter IATA airport code | |
type Airport = string | |
// DataElement A data element is an additional flight attribute as defined in SSIM, Chapter 2 dealing with a variety of characteristics, e.g.: | |
// * Traffic Restriction: 8 | |
// * Codeshare - Duplicate leg cross-reference: 10 | |
// * Codeshare - Operational leg cross-reference: 50 | |
// * Departure Terminal: 99 | |
// * Arrival Terminal: 98 | |
// * Passenger Reservation Booking Designator (PRBD): 106 | |
// * Meal service note: 109 | |
// * Inflight Service: 503 | |
// * Electronic Ticket Indicator: 505 | |
// * etc. | |
type DataElement struct { | |
// EndLegSequenceNumber The sequence number of the leg where data element offpoint belongs to | |
EndLegSequenceNumber int`json:"endLegSequenceNumber"` | |
// Id The data element identifier - see SSIM, Chapter 2 for additional information | |
Id int`json:"id"` | |
// StartLegSequenceNumber The sequence number of the leg where data element boardpoint belongs to | |
StartLegSequenceNumber int`json:"startLegSequenceNumber"` | |
// Value The data element value itself | |
Value *string`json:"value,omitempty"` | |
} | |
// DaysOfOperation String representation of the days of operation (weekdays) in the format 'fffffff' with whitespace padding | |
type DaysOfOperation = string | |
// ErrorResponse defines model for ErrorResponse. | |
type ErrorResponse struct { | |
HttpStatus *int`json:"httpStatus,omitempty"` | |
Messages *[]Message`json:"messages,omitempty"` | |
TechnicalMessages *[]TechnicalMessage`json:"technicalMessages,omitempty"` | |
} | |
// FlightAggregate A FlightAggregate is a date-wise aggregation of otherwise single-dated flights. I.e. flights with identical attributes are aggregated into periods of operation. | |
type FlightAggregate struct { | |
// Airline The airline code of the flight | |
Airline *Airline`json:"airline,omitempty"` | |
// DataElements The data elements | |
DataElements *[]DataElement`json:"dataElements,omitempty"` | |
// FlightNumber The flight number | |
FlightNumber *FlightNumber`json:"flightNumber,omitempty"` | |
// Legs The legs | |
Legs *[]Leg`json:"legs,omitempty"` | |
// PeriodOfOperationLT The combination of start date, end date and a weekday pattern | |
PeriodOfOperationLT *PeriodOfOperation`json:"periodOfOperationLT,omitempty"` | |
// PeriodOfOperationUTC The combination of start date, end date and a weekday pattern | |
PeriodOfOperationUTC *PeriodOfOperation`json:"periodOfOperationUTC,omitempty"` | |
// Suffix Operational suffix. One character or empty string. | |
Suffix *Suffix`json:"suffix,omitempty"` | |
} | |
// FlightNumber The flight number | |
type FlightNumber = int | |
// FlightResponse defines model for FlightResponse. | |
type FlightResponse = []FlightAggregate | |
// Leg A flight's leg is a smaller part of an overall journey which involves landing at an intermediate airport | |
type Leg struct { | |
// AircraftArrivalTimeDateDiffLT The date difference between the flight LT date and the aircraft arrival time of this leg in days. | |
AircraftArrivalTimeDateDiffLT *int`json:"aircraftArrivalTimeDateDiffLT,omitempty"` | |
// AircraftArrivalTimeDateDiffUTC The date difference between the flight UTC date and the aircraftarrival time of this leg in days. | |
AircraftArrivalTimeDateDiffUTC *int`json:"aircraftArrivalTimeDateDiffUTC,omitempty"` | |
// AircraftArrivalTimeLT The LT Aircraft Scheduled Time of Arrival for this leg in minutes | |
AircraftArrivalTimeLT *int`json:"aircraftArrivalTimeLT,omitempty"` | |
// AircraftArrivalTimeUTC The UTC Aircraft Scheduled Time of Arrival for this leg in minutes | |
AircraftArrivalTimeUTC *int`json:"aircraftArrivalTimeUTC,omitempty"` | |
// AircraftArrivalTimeVariation The arrival time difference between the LT and UTC time in minutes. | |
AircraftArrivalTimeVariation *int`json:"aircraftArrivalTimeVariation,omitempty"` | |
// AircraftConfigurationVersion The Aircraft Configuration/Version. | |
AircraftConfigurationVersion *string`json:"aircraftConfigurationVersion,omitempty"` | |
// AircraftDepartureTimeDateDiffLT The date difference between the flight LT date and the aircraft departure time of this leg in days. | |
AircraftDepartureTimeDateDiffLT *int`json:"aircraftDepartureTimeDateDiffLT,omitempty"` | |
// AircraftDepartureTimeDateDiffUTC The date difference between the flight UTC date and the aircraft departure time of this leg in days. | |
AircraftDepartureTimeDateDiffUTC *int`json:"aircraftDepartureTimeDateDiffUTC,omitempty"` | |
// AircraftDepartureTimeLT The LT Aircraft Scheduled Time of Departure for this leg in minutes | |
AircraftDepartureTimeLT *int`json:"aircraftDepartureTimeLT,omitempty"` | |
// AircraftDepartureTimeUTC The UTC Aircraft Scheduled Time of Departure for this leg in minutes | |
AircraftDepartureTimeUTC *int`json:"aircraftDepartureTimeUTC,omitempty"` | |
// AircraftDepartureTimeVariation The departure time difference between the LT and UTC time in minutes. | |
AircraftDepartureTimeVariation *int`json:"aircraftDepartureTimeVariation,omitempty"` | |
// AircraftOwner The aircraft owner or administrative carrier (an airline code) of the leg | |
AircraftOwner *Airline`json:"aircraftOwner,omitempty"` | |
// AircraftType The fleet type identifier 3 characters, can contain letters and numbers. | |
AircraftType AircraftType`json:"aircraftType"` | |
// Destination The arrival airport code | |
Destination Airport`json:"destination"` | |
// Op Signals whether this is an operating or a marketing leg | |
Op *bool`json:"op,omitempty"` | |
// Origin The departure airport code | |
Origin Airport`json:"origin"` | |
// Registration Aircraft Registration Information | |
Registration *string`json:"registration,omitempty"` | |
// SequenceNumber The sequence number of this leg in the associated itinerary | |
SequenceNumber int`json:"sequenceNumber"` | |
// ServiceType The service type of the leg. An uppercase letter. | |
ServiceType ServiceType`json:"serviceType"` | |
} | |
// Message defines model for Message. | |
type Message struct { | |
// Level The level of messages retured by the REST API to the Client | |
Level *MessageLevel`json:"level,omitempty"` | |
// Text Message text | |
Text *string`json:"text,omitempty"` | |
} | |
// MessageLevel The level of messages retured by the REST API to the Client | |
type MessageLevel string | |
// PeriodOfOperation The combination of start date, end date and a weekday pattern | |
type PeriodOfOperation struct { | |
// DaysOfOperation String representation of the days of operation (weekdays) in the format 'fffffff' with whitespace padding | |
DaysOfOperation DaysOfOperation`json:"daysOfOperation"` | |
// EndDate The start date of this period in the format 'DDMMMYY' | |
EndDate SSIMDate`json:"endDate"` | |
// StartDate The start date of this period in the format 'DDMMMYY' | |
StartDate SSIMDate`json:"startDate"` | |
} | |
// SSIMDate A date represented in the format 'DDMMMYY' | |
type SSIMDate = string | |
// ServiceType Service type identifying whether the flight is a passenger or cargo flight (or something else). An uppercase letter. | |
type ServiceType = string | |
// Suffix Operational suffix. One character or empty string. | |
type Suffix = string | |
// TechnicalMessage defines model for TechnicalMessage. | |
type TechnicalMessage struct { | |
// Text Message text | |
Text *string`json:"text,omitempty"` | |
} | |
// TimeMode The intended time mode. Either Universal Time Coordinated (UTC) or Local Time (LT) | |
type TimeMode string | |
// AircraftTypes defines model for aircraftTypes. | |
type AircraftTypes = []AircraftType | |
// Airlines defines model for airlines. | |
type Airlines = []Airline | |
// Destination Airport represented by a 3 letter IATA airport code | |
type Destination = Airport | |
// EndDate A date represented in the format 'DDMMMYY' | |
type EndDate = SSIMDate | |
// FlightNumberRanges defines model for flightNumberRanges. | |
type FlightNumberRanges = string | |
// Origin Airport represented by a 3 letter IATA airport code | |
type Origin = Airport | |
// StartDate A date represented in the format 'DDMMMYY' | |
type StartDate = SSIMDate | |
// GetFlightschedulesParams defines parameters for GetFlightschedules. | |
type GetFlightschedulesParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// GetFlightschedulesCargoParams defines parameters for GetFlightschedulesCargo. | |
type GetFlightschedulesCargoParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// GetFlightschedulesPassengerParams defines parameters for GetFlightschedulesPassenger. | |
type GetFlightschedulesPassengerParams struct { | |
// Airlines The list of airline codes | |
Airlines Airlines`form:"airlines" json:"airlines"` | |
// FlightNumberRanges The flight number range filter string. e.g.: '-100, 200, 100-200, 300-' | |
FlightNumberRanges *FlightNumberRanges`form:"flightNumberRanges,omitempty" json:"flightNumberRanges,omitempty"` | |
// StartDate The period start date. SSIM date format DDMMMYY | |
StartDate StartDate`form:"startDate" json:"startDate"` | |
// EndDate The period end date. SSIM date format DDMMMYY | |
EndDate EndDate`form:"endDate" json:"endDate"` | |
// DaysOfOperation The days of operation, i.e. the days of the week. Whitespace padded to 7 chars. E.g.: ' 34 6 ' | |
DaysOfOperation DaysOfOperation`form:"daysOfOperation" json:"daysOfOperation"` | |
// TimeMode The time mode of the period of operations | |
TimeMode TimeMode`form:"timeMode" json:"timeMode"` | |
// Origin Search for flights departing from this station. 3 letter IATA airport code. | |
Origin *Origin`form:"origin,omitempty" json:"origin,omitempty"` | |
// Destination Search for flights arriving at this station. 3 letter IATA airport code. | |
Destination *Destination`form:"destination,omitempty" json:"destination,omitempty"` | |
// AircraftTypes The list of aircraft types | |
AircraftTypes *AircraftTypes`form:"aircraftTypes,omitempty" json:"aircraftTypes,omitempty"` | |
} | |
// RequestEditorFn is the function signature for the RequestEditor callback function | |
type RequestEditorFn func(ctx context.Context, req *http.Request) error | |
// Doer performs HTTP requests. | |
// | |
// The standard http.Client implements this interface. | |
type HttpRequestDoer interface { | |
Do(req *http.Request) (*http.Response, error) | |
} | |
// Client which conforms to the OpenAPI3 specification for this service. | |
type Client struct { | |
// The endpoint of the server conforming to this interface, with scheme, | |
// https://api.deepmap.com for example. This can contain a path relative | |
// to the server, such as https://api.deepmap.com/dev-test, and all the | |
// paths in the swagger spec will be appended to the server. | |
Server string | |
// Doer for performing requests, typically a *http.Client with any | |
// customized settings, such as certificate chains. | |
Client HttpRequestDoer | |
// A list of callbacks for modifying requests which are generated before sending over | |
// the network. | |
RequestEditors []RequestEditorFn | |
} | |
// ClientOption allows setting custom parameters during construction | |
type ClientOption func(*Client) error | |
// Creates a new Client, with reasonable defaults | |
func NewClient(server string, opts ...ClientOption) (*Client, error) { | |
// create a client with sane default values | |
client := Client{ | |
Server: server, | |
} | |
// mutate client and add all optional params | |
for _, o := range opts { | |
if err := o(&client); err != nil { | |
return nil, err | |
} | |
} | |
// ensure the server URL always has a trailing slash | |
if !strings.HasSuffix(client.Server, "/") { | |
client.Server += "/" | |
} | |
// create httpClient, if not already present | |
if client.Client == nil { | |
client.Client = &http.Client{} | |
} | |
return &client, nil | |
} | |
// WithHTTPClient allows overriding the default Doer, which is | |
// automatically created using http.Client. This is useful for tests. | |
func WithHTTPClient(doer HttpRequestDoer) ClientOption { | |
return func(c *Client) error { | |
c.Client = doer | |
return nil | |
} | |
} | |
// WithRequestEditorFn allows setting up a callback function, which will be | |
// called right before sending the request. This can be used to mutate the request. | |
func WithRequestEditorFn(fn RequestEditorFn) ClientOption { | |
return func(c *Client) error { | |
c.RequestEditors = append(c.RequestEditors, fn) | |
return nil | |
} | |
} | |
// The interface specification for the client above. | |
type ClientInterface interface { | |
// GetFlightschedules request | |
GetFlightschedules(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
// GetFlightschedulesCargo request | |
GetFlightschedulesCargo(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
// GetFlightschedulesPassenger request | |
GetFlightschedulesPassenger(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*http.Response, error) | |
} | |
func (c *Client) GetFlightschedules(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
func (c *Client) GetFlightschedulesCargo(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesCargoRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
func (c *Client) GetFlightschedulesPassenger(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*http.Response, error) { | |
req, err := NewGetFlightschedulesPassengerRequest(c.Server, params) | |
if err != nil { | |
return nil, err | |
} | |
req = req.WithContext(ctx) | |
if err := c.applyEditors(ctx, req, reqEditors); err != nil { | |
return nil, err | |
} | |
return c.Client.Do(req) | |
} | |
// NewGetFlightschedulesRequest generates requests for GetFlightschedules | |
func NewGetFlightschedulesRequest(server string, params *GetFlightschedulesParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
// NewGetFlightschedulesCargoRequest generates requests for GetFlightschedulesCargo | |
func NewGetFlightschedulesCargoRequest(server string, params *GetFlightschedulesCargoParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules/cargo") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
// NewGetFlightschedulesPassengerRequest generates requests for GetFlightschedulesPassenger | |
func NewGetFlightschedulesPassengerRequest(server string, params *GetFlightschedulesPassengerParams) (*http.Request, error) { | |
var err error | |
serverURL, err := url.Parse(server) | |
if err != nil { | |
return nil, err | |
} | |
operationPath := fmt.Sprintf("/flightschedules/passenger") | |
if operationPath[0] == '/' { | |
operationPath = "." + operationPath | |
} | |
queryURL, err := serverURL.Parse(operationPath) | |
if err != nil { | |
return nil, err | |
} | |
if params != nil { | |
queryValues := queryURL.Query() | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "airlines", runtime.ParamLocationQuery, params.Airlines); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.FlightNumberRanges != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "flightNumberRanges", runtime.ParamLocationQuery, *params.FlightNumberRanges); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, params.StartDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, params.EndDate); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "daysOfOperation", runtime.ParamLocationQuery, params.DaysOfOperation); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "timeMode", runtime.ParamLocationQuery, params.TimeMode); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
if params.Origin != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "origin", runtime.ParamLocationQuery, *params.Origin); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.Destination != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "destination", runtime.ParamLocationQuery, *params.Destination); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
if params.AircraftTypes != nil { | |
if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aircraftTypes", runtime.ParamLocationQuery, *params.AircraftTypes); err != nil { | |
return nil, err | |
} else if parsed, err := url.ParseQuery(queryFrag); err != nil { | |
return nil, err | |
} else { | |
for k, v := range parsed { | |
for _, v2 := range v { | |
queryValues.Add(k, v2) | |
} | |
} | |
} | |
} | |
queryURL.RawQuery = queryValues.Encode() | |
} | |
req, err := http.NewRequest("GET", queryURL.String(), nil) | |
if err != nil { | |
return nil, err | |
} | |
return req, nil | |
} | |
func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { | |
for _, r := range c.RequestEditors { | |
if err := r(ctx, req); err != nil { | |
return err | |
} | |
} | |
for _, r := range additionalEditors { | |
if err := r(ctx, req); err != nil { | |
return err | |
} | |
} | |
return nil | |
} | |
// ClientWithResponses builds on ClientInterface to offer response payloads | |
type ClientWithResponses struct { | |
ClientInterface | |
} | |
// NewClientWithResponses creates a new ClientWithResponses, which wraps | |
// Client with return type handling | |
func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) { | |
client, err := NewClient(server, opts...) | |
if err != nil { | |
return nil, err | |
} | |
return &ClientWithResponses{client}, nil | |
} | |
// WithBaseURL overrides the baseURL. | |
func WithBaseURL(baseURL string) ClientOption { | |
return func(c *Client) error { | |
newBaseURL, err := url.Parse(baseURL) | |
if err != nil { | |
return err | |
} | |
c.Server = newBaseURL.String() | |
return nil | |
} | |
} | |
// ClientWithResponsesInterface is the interface specification for the client with responses above. | |
type ClientWithResponsesInterface interface { | |
// GetFlightschedulesWithResponse request | |
GetFlightschedulesWithResponse(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*GetFlightschedulesResponse, error) | |
// GetFlightschedulesCargoWithResponse request | |
GetFlightschedulesCargoWithResponse(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*GetFlightschedulesCargoResponse, error) | |
// GetFlightschedulesPassengerWithResponse request | |
GetFlightschedulesPassengerWithResponse(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*GetFlightschedulesPassengerResponse, error) | |
} | |
type GetFlightschedulesResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
type GetFlightschedulesCargoResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesCargoResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesCargoResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
type GetFlightschedulesPassengerResponse struct { | |
Body []byte | |
HTTPResponse *http.Response | |
JSON200 *FlightResponse | |
JSON206 *FlightResponse | |
JSON400 *ErrorResponse | |
JSON401 *ErrorResponse | |
JSON404 *ErrorResponse | |
JSON500 *ErrorResponse | |
} | |
// Status returns HTTPResponse.Status | |
func (r GetFlightschedulesPassengerResponse) Status() string { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.Status | |
} | |
return http.StatusText(0) | |
} | |
// StatusCode returns HTTPResponse.StatusCode | |
func (r GetFlightschedulesPassengerResponse) StatusCode() int { | |
if r.HTTPResponse != nil { | |
return r.HTTPResponse.StatusCode | |
} | |
return 0 | |
} | |
// GetFlightschedulesWithResponse request returning *GetFlightschedulesResponse | |
func (c *ClientWithResponses) GetFlightschedulesWithResponse(ctx context.Context, params *GetFlightschedulesParams, reqEditors... RequestEditorFn) (*GetFlightschedulesResponse, error){ | |
rsp, err := c.GetFlightschedules(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesResponse(rsp) | |
} | |
// GetFlightschedulesCargoWithResponse request returning *GetFlightschedulesCargoResponse | |
func (c *ClientWithResponses) GetFlightschedulesCargoWithResponse(ctx context.Context, params *GetFlightschedulesCargoParams, reqEditors... RequestEditorFn) (*GetFlightschedulesCargoResponse, error){ | |
rsp, err := c.GetFlightschedulesCargo(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesCargoResponse(rsp) | |
} | |
// GetFlightschedulesPassengerWithResponse request returning *GetFlightschedulesPassengerResponse | |
func (c *ClientWithResponses) GetFlightschedulesPassengerWithResponse(ctx context.Context, params *GetFlightschedulesPassengerParams, reqEditors... RequestEditorFn) (*GetFlightschedulesPassengerResponse, error){ | |
rsp, err := c.GetFlightschedulesPassenger(ctx, params, reqEditors...) | |
if err != nil { | |
return nil, err | |
} | |
return ParseGetFlightschedulesPassengerResponse(rsp) | |
} | |
// ParseGetFlightschedulesResponse parses an HTTP response from a GetFlightschedulesWithResponse call | |
func ParseGetFlightschedulesResponse(rsp *http.Response) (*GetFlightschedulesResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ParseGetFlightschedulesCargoResponse parses an HTTP response from a GetFlightschedulesCargoWithResponse call | |
func ParseGetFlightschedulesCargoResponse(rsp *http.Response) (*GetFlightschedulesCargoResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesCargoResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ParseGetFlightschedulesPassengerResponse parses an HTTP response from a GetFlightschedulesPassengerWithResponse call | |
func ParseGetFlightschedulesPassengerResponse(rsp *http.Response) (*GetFlightschedulesPassengerResponse, error) { | |
bodyBytes, err := io.ReadAll(rsp.Body) | |
defer func() { _ = rsp.Body.Close() }() | |
if err != nil { | |
return nil, err | |
} | |
response := &GetFlightschedulesPassengerResponse{ | |
Body: bodyBytes, | |
HTTPResponse: rsp, | |
} | |
switch { | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON200 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 206: | |
var dest FlightResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON206 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON400 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON401 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON404 = &dest | |
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: | |
var dest ErrorResponse | |
if err := json.Unmarshal(bodyBytes, &dest); err != nil { | |
return nil, err | |
} | |
response.JSON500 = &dest | |
} | |
return response, nil | |
} | |
// ServerInterface represents all server handlers. | |
type ServerInterface interface { | |
// Search all flights | |
// (GET /flightschedules) | |
GetFlightschedules(ctx echo.Context, params GetFlightschedulesParams) error | |
// Returns cargo flights | |
// (GET /flightschedules/cargo) | |
GetFlightschedulesCargo(ctx echo.Context, params GetFlightschedulesCargoParams) error | |
// Returns passenger flights | |
// (GET /flightschedules/passenger) | |
GetFlightschedulesPassenger(ctx echo.Context, params GetFlightschedulesPassengerParams) error | |
} | |
// ServerInterfaceWrapper converts echo contexts to parameters. | |
type ServerInterfaceWrapper struct { | |
Handler ServerInterface | |
} | |
// GetFlightschedules converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedules (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedules(ctx, params) | |
return err | |
} | |
// GetFlightschedulesCargo converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedulesCargo (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesCargoParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedulesCargo(ctx, params) | |
return err | |
} | |
// GetFlightschedulesPassenger converts echo context to params. | |
func (w *ServerInterfaceWrapper) GetFlightschedulesPassenger (ctx echo.Context) error { | |
var err error | |
ctx.Set(BearerScopes, []string{}) | |
// Parameter object where we will unmarshal all parameters from the context | |
var params GetFlightschedulesPassengerParams | |
// ------------- Required query parameter "airlines" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "airlines", ctx.QueryParams(), ¶ms.Airlines) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter airlines: %s", err)) | |
} | |
// ------------- Optional query parameter "flightNumberRanges" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "flightNumberRanges", ctx.QueryParams(), ¶ms.FlightNumberRanges) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter flightNumberRanges: %s", err)) | |
} | |
// ------------- Required query parameter "startDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "startDate", ctx.QueryParams(), ¶ms.StartDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startDate: %s", err)) | |
} | |
// ------------- Required query parameter "endDate" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "endDate", ctx.QueryParams(), ¶ms.EndDate) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endDate: %s", err)) | |
} | |
// ------------- Required query parameter "daysOfOperation" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "daysOfOperation", ctx.QueryParams(), ¶ms.DaysOfOperation) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter daysOfOperation: %s", err)) | |
} | |
// ------------- Required query parameter "timeMode" ------------- | |
err = runtime.BindQueryParameter("form", true, true, "timeMode", ctx.QueryParams(), ¶ms.TimeMode) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter timeMode: %s", err)) | |
} | |
// ------------- Optional query parameter "origin" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "origin", ctx.QueryParams(), ¶ms.Origin) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter origin: %s", err)) | |
} | |
// ------------- Optional query parameter "destination" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "destination", ctx.QueryParams(), ¶ms.Destination) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter destination: %s", err)) | |
} | |
// ------------- Optional query parameter "aircraftTypes" ------------- | |
err = runtime.BindQueryParameter("form", true, false, "aircraftTypes", ctx.QueryParams(), ¶ms.AircraftTypes) | |
if err != nil { | |
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aircraftTypes: %s", err)) | |
} | |
// Invoke the callback with all the unmarshaled arguments | |
err = w.Handler.GetFlightschedulesPassenger(ctx, params) | |
return err | |
} | |
// This is a simple interface which specifies echo.Route addition functions which | |
// are present on both echo.Echo and echo.Group, since we want to allow using | |
// either of them for path registration | |
type EchoRouter interface { | |
CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route | |
} | |
// RegisterHandlers adds each server route to the EchoRouter. | |
func RegisterHandlers(router EchoRouter, si ServerInterface) { | |
RegisterHandlersWithBaseURL(router, si, "") | |
} | |
// Registers handlers, and prepends BaseURL to the paths, so that the paths | |
// can be served under a prefix. | |
func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) { | |
wrapper := ServerInterfaceWrapper{ | |
Handler: si, | |
} | |
router.GET(baseURL + "/flightschedules", wrapper.GetFlightschedules) | |
router.GET(baseURL + "/flightschedules/cargo", wrapper.GetFlightschedulesCargo) | |
router.GET(baseURL + "/flightschedules/passenger", wrapper.GetFlightschedulesPassenger) | |
} | |
// Base64 encoded, gzipped, json marshaled Swagger object | |
var swaggerSpec = []string{ | |
"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", | |
} | |
// GetSwagger returns the content of the embedded swagger specification file | |
// or error if failed to decode | |
func decodeSpec() ([]byte, error) { | |
zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) | |
if err != nil { | |
return nil, fmt.Errorf("error base64 decoding spec: %w", err) | |
} | |
zr, err := gzip.NewReader(bytes.NewReader(zipped)) | |
if err != nil { | |
return nil, fmt.Errorf("error decompressing spec: %w", err) | |
} | |
var buf bytes.Buffer | |
_, err = buf.ReadFrom(zr) | |
if err != nil { | |
return nil, fmt.Errorf("error decompressing spec: %w", err) | |
} | |
return buf.Bytes(), nil | |
} | |
var rawSpec = decodeSpecCached() | |
// a naive cached of a decoded swagger spec | |
func decodeSpecCached() func() ([]byte, error) { | |
data, err := decodeSpec() | |
return func() ([]byte, error) { | |
return data, err | |
} | |
} | |
// Constructs a synthetic filesystem for resolving external references when loading openapi specifications. | |
func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { | |
res := make(map[string]func() ([]byte, error)) | |
if len(pathToFile) > 0 { | |
res[pathToFile] = rawSpec | |
} | |
return res | |
} | |
// GetSwagger returns the Swagger specification corresponding to the generated code | |
// in this file. The external references of Swagger specification are resolved. | |
// The logic of resolving external references is tightly connected to "import-mapping" feature. | |
// Externally referenced files must be embedded in the corresponding golang packages. | |
// Urls can be supported but this task was out of the scope. | |
func GetSwagger() (swagger *openapi3.T, err error) { | |
resolvePath := PathToRawSpec("") | |
loader := openapi3.NewLoader() | |
loader.IsExternalRefsAllowed = true | |
loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { | |
pathToFile := url.String() | |
pathToFile = path.Clean(pathToFile) | |
getSpec, ok := resolvePath[pathToFile] | |
if !ok { | |
err1 := fmt.Errorf("path not found: %s", pathToFile) | |
return nil, err1 | |
} | |
return getSpec() | |
} | |
var specData []byte | |
specData, err = rawSpec() | |
if err != nil { | |
return | |
} | |
swagger, err = loader.LoadFromData(specData) | |
if err != nil { | |
return | |
} | |
return | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment