rest

package
v0.0.0-...-f63fcbb Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: GPL-3.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const CIRCLESIZE = 10

CIRCLESIZE .

View Source
const CIRCLEWIDTH = 5

CIRCLEWIDTH .

View Source
const DEFAULTLIMIT = 20

DEFAULTLIMIT is the default API limit

View Source
const MAXRADIUS = 100 * 1000.0

MAXRADIUS is the maximum point search radius

Variables

View Source
var MAXLIMIT = 1_000

MAXLIMIT is the API limit maximum

View Source
var ParameterComponents = oa.ParametersMap{
	"adm0IsoParam": &pref{
		Value: &param{
			Name:        "adm0_iso",
			In:          "query",
			Description: `Search by country 2 letter ISO 3166 code`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"adm0NameParam": &pref{
		Value: &param{
			Name:        "adm0_name",
			In:          "query",
			Description: `Search by country name`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"adm1IsoParam": &pref{
		Value: &param{
			Name:        "adm1_iso",
			In:          "query",
			Description: `Search by state/province/division ISO 3166-2 code`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"adm1NameParam": &pref{
		Value: &param{
			Name:        "adm1_name",
			In:          "query",
			Description: `Search by state/province/division name`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"afterParam": &pref{
		Value: &param{
			Name:        "after",
			In:          "query",
			Description: `Pagination cursor value. This should be treated as an opaque value created by the server and returned as the link to the next result page, which may be empty. For historical reasons, this is based on the integer record ID values, but that should not be assumed to be the case in the future.`,
			Schema:      newSRVal("integer", "int32", nil),
		},
	},
	"bboxParam": &pref{
		Value: &param{
			Name:        "bbox",
			In:          "query",
			Description: `Geographic search using a bounding box, with coordinates in (min_lon, min_lat, max_lon, max_lat) order as a comma separated string`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"cityNameParam": &pref{
		Value: &param{
			Name:        "city_name",
			In:          "query",
			Description: `Search by city name`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"feedParam": &pref{
		Value: &param{
			Name:        "feed_onestop_id",
			In:          "query",
			Description: `Search for records in this feed`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"formatParam": &pref{
		Value: &param{
			Name:        "format",
			In:          "query",
			Description: `Response format`,
			Schema:      newSRVal("string", "", []any{"json", "geojson", "geojsonl", "png"}),
		},
	},
	"idParam": &pref{
		Value: &param{
			Name:        "id",
			In:          "query",
			Description: `Search for a specific internal ID`,
			Schema:      newSRVal("integer", "int32", nil),
		},
	},
	"includeAlertsParam": &pref{
		Value: &param{
			Name:        "include_alerts",
			In:          "query",
			Description: `Include alerts from GTFS Realtime feeds`,
			Schema:      newSRVal("string", "", []any{"true", "false"}),
		},
	},
	"latParam": &pref{
		Value: &param{
			Name:        "lat",
			In:          "query",
			Description: `Latitude`,
			Schema:      newSRVal("number", "", nil),
		},
	},
	"licenseCommercialUseAllowedParam": &pref{
		Value: &param{
			Name:        "license_commercial_use_allowed",
			In:          "query",
			Description: `Filter entities by feed license 'commercial_use_allowed' value. Please see Source Feed concept for details on license values. 'exclude_no' is equivalent to 'yes' and 'unknown'.`,
			Schema:      newSRVal("string", "", []any{"yes", "no", "unknown", "exclude_no"}),
		},
	},
	"licenseCreateDerivedProductParam": &pref{
		Value: &param{
			Name:        "license_create_derived_product",
			In:          "query",
			Description: `Filter entities by feed license 'create_derived_product' value. Please see Source Feed concept for details on license values. 'exclude_no' is equivalent to 'yes' and 'unknown'.`,
			Schema:      newSRVal("string", "", []any{"yes", "no", "unknown", "exclude_no"}),
		},
	},
	"licenseRedistributionAllowedParam": &pref{
		Value: &param{
			Name:        "license_redistribution_allowed",
			In:          "query",
			Description: `Filter entities by feed license 'redistribution_allowed' value. Please see Source Feed concept for details on license values. 'exclude_no' is equivalent to 'yes' and 'unknown'.`,
			Schema:      newSRVal("string", "", []any{"yes", "no", "unknown", "exclude_no"}),
		},
	},
	"licenseShareAlikeOptionalParam": &pref{
		Value: &param{
			Name:        "license_share_alike_optional",
			In:          "query",
			Description: `Filter entities by feed license 'share_alike_optional' value. Please see Source Feed concept for details on license values. 'exclude_no' is equivalent to 'yes' and 'unknown'.`,
			Schema:      newSRVal("string", "", []any{"yes", "no", "unknown", "exclude_no"}),
		},
	},
	"licenseUseWithoutAttributionParam": &pref{
		Value: &param{
			Name:        "license_use_without_attribution",
			In:          "query",
			Description: `Filter entities by feed license 'use_without_attribution' value. Please see Source Feed concept for details on license values. 'exclude_no' is equivalent to 'yes' and 'unknown'.`,
			Schema:      newSRVal("string", "", []any{"yes", "no", "unknown", "exclude_no"}),
		},
	},
	"limitParam": &pref{
		Value: &param{
			Name:        "limit",
			In:          "query",
			Description: `Maximum number of records to return`,
			Schema:      newSRVal("integer", "int32", nil),
		},
	},
	"lonParam": &pref{
		Value: &param{
			Name:        "lon",
			In:          "query",
			Description: `Longitude`,
			Schema:      newSRVal("number", "", nil),
		},
	},
	"onestopParam": &pref{
		Value: &param{
			Name:        "onestop_id",
			In:          "query",
			Description: `Search for a specific Onestop ID`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"radiusParam": &pref{
		Value: &param{
			Name:        "radius",
			In:          "query",
			Description: `Search radius (meters); requires lat and lon`,
			Schema:      newSRVal("number", "", nil),
		},
	},
	"relativeDateParam": &pref{
		Value: &param{
			Name:        "relative_date",
			In:          "query",
			Description: `Search for departures on a relative date label, e.g. TODAY, TUESDAY, NEXT_WEDNESDAY`,
			Schema:      newSRVal("string", "", []any{"TODAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY", "NEXT_MONDAY", "NEXT_TUESDAY", "NEXT_WEDNESDAY", "NEXT_THURSDAY", "NEXT_FRIDAY", "NEXT_SATURDAY", "NEXT_SUNDAY"}),
		},
	},
	"searchParam": &pref{
		Value: &param{
			Name:        "search",
			In:          "query",
			Description: `Full text search`,
			Schema:      newSRVal("string", "", nil),
		},
	},
	"sha1Param": &pref{
		Value: &param{
			Name:        "feed_version_sha1",
			In:          "query",
			Description: `Search for records in this feed version`,
			Schema:      newSRVal("string", "", nil),
		},
	},
}

Functions

func NewServer

func NewServer(graphqlHandler http.Handler) (http.Handler, error)

NewServer .

Types

type AgencyKeyRequest

type AgencyKeyRequest struct {
	AgencyRequest
}

func (AgencyKeyRequest) RequestInfo

func (r AgencyKeyRequest) RequestInfo() RequestInfo

type AgencyRequest

type AgencyRequest struct {
	ID              int       `json:"id,string"`
	AgencyKey       string    `json:"agency_key"`
	AgencyID        string    `json:"agency_id"`
	AgencyName      string    `json:"agency_name"`
	OnestopID       string    `json:"onestop_id"`
	FeedVersionSHA1 string    `json:"feed_version_sha1"`
	FeedOnestopID   string    `json:"feed_onestop_id"`
	Search          string    `json:"search"`
	Lon             float64   `json:"lon,string"`
	Lat             float64   `json:"lat,string"`
	Bbox            *restBbox `json:"bbox"`
	Radius          float64   `json:"radius,string"`
	Adm0Name        string    `json:"adm0_name"`
	Adm0Iso         string    `json:"adm0_iso"`
	Adm1Name        string    `json:"adm1_name"`
	Adm1Iso         string    `json:"adm1_iso"`
	CityName        string    `json:"city_name"`
	IncludeAlerts   bool      `json:"include_alerts,string"`
	IncludeRoutes   bool      `json:"include_routes,string"`
	LicenseFilter
	WithCursor
}

AgencyRequest holds options for an Agency request

func (AgencyRequest) Query

func (r AgencyRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (AgencyRequest) RequestInfo

func (r AgencyRequest) RequestInfo() RequestInfo

func (AgencyRequest) ResponseKey

func (r AgencyRequest) ResponseKey() string

ResponseKey returns the GraphQL response entity key.

type FeedDownloadLatestFeedVersionRequest

type FeedDownloadLatestFeedVersionRequest struct {
}

Currently this exists only for OpenAPI documentation

func (FeedDownloadLatestFeedVersionRequest) Query

func (r FeedDownloadLatestFeedVersionRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (FeedDownloadLatestFeedVersionRequest) RequestInfo

type FeedRequest

type FeedRequest struct {
	FeedKey          string    `json:"feed_key"`
	ID               int       `json:"id,string"`
	OnestopID        string    `json:"onestop_id"`
	Spec             string    `json:"spec"`
	Search           string    `json:"search"`
	FetchError       string    `json:"fetch_error"`
	TagKey           string    `json:"tag_key"`
	TagValue         string    `json:"tag_value"`
	URL              string    `json:"url"`
	URLType          string    `json:"url_type"`
	URLCaseSensitive bool      `json:"url_case_sensitive"`
	Lon              float64   `json:"lon,string"`
	Lat              float64   `json:"lat,string"`
	Radius           float64   `json:"radius,string"`
	Bbox             *restBbox `json:"bbox"`
	LicenseFilter
	WithCursor
}

FeedRequest holds options for a Feed request

func (FeedRequest) ProcessGeoJSON

func (r FeedRequest) ProcessGeoJSON(response map[string]interface{}) error

ProcessGeoJSON .

func (FeedRequest) Query

func (r FeedRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (FeedRequest) RequestInfo

func (r FeedRequest) RequestInfo() RequestInfo

func (FeedRequest) ResponseKey

func (r FeedRequest) ResponseKey() string

ResponseKey .

type FeedVersionDownloadRequest

type FeedVersionDownloadRequest struct {
}

Currently this exists only for OpenAPI documentation

func (FeedVersionDownloadRequest) Query

func (r FeedVersionDownloadRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (FeedVersionDownloadRequest) RequestInfo

func (r FeedVersionDownloadRequest) RequestInfo() RequestInfo

type FeedVersionRequest

type FeedVersionRequest struct {
	FeedVersionKey  string    `json:"feed_version_key"`
	FeedKey         string    `json:"feed_key"`
	ID              int       `json:"id,string"`
	FeedID          int       `json:"feed_id,string"`
	FeedOnestopID   string    `json:"feed_onestop_id"`
	Sha1            string    `json:"sha1"`
	FetchedBefore   string    `json:"fetched_before"`
	FetchedAfter    string    `json:"fetched_after"`
	CoversStartDate string    `json:"covers_start_date"`
	CoversEndDate   string    `json:"covers_end_date"`
	Lon             float64   `json:"lon,string"`
	Lat             float64   `json:"lat,string"`
	Radius          float64   `json:"radius,string"`
	Bbox            *restBbox `json:"bbox"`
	WithCursor
}

FeedVersionRequest holds options for a Feed Version request

func (FeedVersionRequest) Query

func (r FeedVersionRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (FeedVersionRequest) RequestInfo

func (r FeedVersionRequest) RequestInfo() RequestInfo

func (FeedVersionRequest) ResponseKey

func (r FeedVersionRequest) ResponseKey() string

ResponseKey .

type LicenseFilter

type LicenseFilter struct {
	LicenseCommercialUseAllowed  string `json:"license_commercial_use_allowed"`
	LicenseShareAlikeOptional    string `json:"license_share_alike_optional"`
	LicenseCreateDerivedProduct  string `json:"license_create_derived_product"`
	LicenseRedistributionAllowed string `json:"license_redistribution_allowed"`
	LicenseUseWithoutAttribution string `json:"license_use_without_attribution"`
}

type OperatorRequest

type OperatorRequest struct {
	OperatorKey   string    `json:"operator_key"`
	ID            int       `json:"id,string"`
	OnestopID     string    `json:"onestop_id"`
	FeedOnestopID string    `json:"feed_onestop_id"`
	Search        string    `json:"search"`
	TagKey        string    `json:"tag_key"`
	TagValue      string    `json:"tag_value"`
	Lon           float64   `json:"lon,string"`
	Lat           float64   `json:"lat,string"`
	Bbox          *restBbox `json:"bbox"`
	Radius        float64   `json:"radius,string"`
	Adm0Name      string    `json:"adm0_name"`
	Adm0Iso       string    `json:"adm0_iso"`
	Adm1Name      string    `json:"adm1_name"`
	Adm1Iso       string    `json:"adm1_iso"`
	CityName      string    `json:"city_name"`
	IncludeAlerts bool      `json:"include_alerts,string"`
	LicenseFilter
	WithCursor
}

OperatorRequest holds options for an Operator request

func (OperatorRequest) Query

func (r OperatorRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (OperatorRequest) RequestInfo

func (r OperatorRequest) RequestInfo() RequestInfo

func (OperatorRequest) ResponseKey

func (r OperatorRequest) ResponseKey() string

ResponseKey returns the GraphQL response entity key.

type RequestAltPath

type RequestAltPath struct {
	Method  string `json:"method"`
	Path    string `json:"path"`
	Summary string `json:"summary"`
}

type RequestInfo

type RequestInfo struct {
	Path        string
	Description string
	Get         RequestOperation
}

type RequestOperation

type RequestOperation struct {
	Operation *oa.Operation
	Query     string
}

type RouteKeyRequest

type RouteKeyRequest struct {
	RouteRequest
}

func (RouteKeyRequest) RequestInfo

func (r RouteKeyRequest) RequestInfo() RequestInfo

type RouteRequest

type RouteRequest struct {
	ID                int       `json:"id,string"`
	RouteKey          string    `json:"route_key"`
	AgencyKey         string    `json:"agency_key"`
	RouteID           string    `json:"route_id"`
	RouteType         string    `json:"route_type"`
	RouteTypes        string    `json:"route_types"`
	OnestopID         string    `json:"onestop_id"`
	OperatorOnestopID string    `json:"operator_onestop_id"`
	Format            string    `json:"format"`
	Search            string    `json:"search"`
	AgencyID          int       `json:"agency_id,string"`
	FeedVersionSHA1   string    `json:"feed_version_sha1"`
	FeedOnestopID     string    `json:"feed_onestop_id"`
	Lon               float64   `json:"lon,string"`
	Lat               float64   `json:"lat,string"`
	Radius            float64   `json:"radius,string"`
	Bbox              *restBbox `json:"bbox"`
	IncludeGeometry   bool      `json:"include_geometry,string"`
	IncludeAlerts     bool      `json:"include_alerts,string"`
	IncludeStops      bool      `json:"include_stops,string"`
	LicenseFilter
	WithCursor
}

RouteRequest holds options for a Route request

func (RouteRequest) Query

func (r RouteRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (RouteRequest) RequestInfo

func (r RouteRequest) RequestInfo() RequestInfo

func (RouteRequest) ResponseKey

func (r RouteRequest) ResponseKey() string

ResponseKey returns the GraphQL response entity key.

type StopDepartureRequest

type StopDepartureRequest struct {
	StopKey          string `json:"stop_key"`
	ID               int    `json:"id,string"`
	StopID           string `json:"stop_id"`
	FeedOnestopID    string `json:"feed_onestop_id"`
	OnestopID        string `json:"onestop_id"`
	Next             int    `json:"next,string"`
	ServiceDate      string `json:"service_date"`
	Date             string `json:"date"`
	RelativeDate     string `json:"relative_date"`
	StartTime        string `json:"start_time"`
	EndTime          string `json:"end_time"`
	IncludeGeometry  bool   `json:"include_geometry,string"`
	IncludeAlerts    bool   `json:"include_alerts,string"`
	UseServiceWindow *bool  `json:"use_service_window,string"`
	WithCursor
}

StopDepartureRequest holds options for a /stops/_/departures request

func (StopDepartureRequest) IncludeNext

func (r StopDepartureRequest) IncludeNext() bool

IncludeNext

func (StopDepartureRequest) Query

func (r StopDepartureRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (StopDepartureRequest) RequestInfo

func (r StopDepartureRequest) RequestInfo() RequestInfo

func (StopDepartureRequest) ResponseKey

func (r StopDepartureRequest) ResponseKey() string

ResponseKey returns the GraphQL response entity key.

type StopEntityRequest

type StopEntityRequest struct {
	StopRequest
}

func (StopEntityRequest) RequestInfo

func (r StopEntityRequest) RequestInfo() RequestInfo

type StopRequest

type StopRequest struct {
	ID                 int       `json:"id,string"`
	StopKey            string    `json:"stop_key"`
	StopID             string    `json:"stop_id"`
	OnestopID          string    `json:"onestop_id"`
	FeedVersionSHA1    string    `json:"feed_version_sha1"`
	FeedOnestopID      string    `json:"feed_onestop_id"`
	Search             string    `json:"search"`
	Bbox               *restBbox `json:"bbox"`
	Lon                float64   `json:"lon,string"`
	Lat                float64   `json:"lat,string"`
	Radius             float64   `json:"radius,string"`
	Format             string    `json:"format"`
	ServedByOnestopIds string    `json:"served_by_onestop_ids"`
	ServedByRouteType  *int      `json:"served_by_route_type,string"`
	ServedByRouteTypes string    `json:"served_by_route_types"`
	IncludeAlerts      bool      `json:"include_alerts,string"`
	IncludeRoutes      bool      `json:"include_routes,string"`
	LicenseFilter
	WithCursor
}

StopRequest holds options for a /stops request

func (StopRequest) Query

func (r StopRequest) Query(ctx context.Context) (string, map[string]any)

Query returns a GraphQL query string and variables.

func (StopRequest) RequestInfo

func (r StopRequest) RequestInfo() RequestInfo

func (StopRequest) ResponseKey

func (r StopRequest) ResponseKey() string

ResponseKey returns the GraphQL response entity key.

type TripEntityRequest

type TripEntityRequest struct {
	TripRequest
}

func (TripEntityRequest) RequestInfo

func (r TripEntityRequest) RequestInfo() RequestInfo

type TripRequest

type TripRequest struct {
	ID               int    `json:"id,string"`
	TripID           string `json:"trip_id"`
	RouteKey         string `json:"route_key"`
	RouteID          int    `json:"route_id,string"`
	RouteOnestopID   string `json:"route_onestop_id"`
	FeedOnestopID    string `json:"feed_onestop_id"`
	FeedVersionSHA1  string `json:"feed_version_sha1"`
	ServiceDate      string `json:"service_date"`
	RelativeDate     string `json:"relative_date"`
	IncludeGeometry  bool   `json:"include_geometry,string"`
	IncludeStopTimes bool   `json:"include_stop_times,string"`
	IncludeAlerts    bool   `json:"include_alerts,string"`
	Format           string
	LicenseFilter
	WithCursor
}

TripRequest holds options for a /trips request

func (TripRequest) ProcessGeoJSON

func (r TripRequest) ProcessGeoJSON(response map[string]interface{}) error

ProcessGeoJSON .

func (TripRequest) Query

func (r TripRequest) Query(ctx context.Context) (string, map[string]interface{})

Query returns a GraphQL query string and variables.

func (TripRequest) RequestInfo

func (r TripRequest) RequestInfo() RequestInfo

func (TripRequest) ResponseKey

func (r TripRequest) ResponseKey() string

ResponseKey .

type WithCursor

type WithCursor struct {
	Limit int `json:"limit,string"`
	After int `json:"after,string"`
}

func (WithCursor) CheckAfter

func (w WithCursor) CheckAfter() int

func (WithCursor) CheckLimit

func (w WithCursor) CheckLimit() int

Jump to

Keyboard shortcuts

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