feat: add sqlc generated code
This commit is contained in:
parent
42ccbb5008
commit
58f0a3ede6
3 changed files with 472 additions and 0 deletions
32
queries/db.go
Normal file
32
queries/db.go
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.28.0
|
||||||
|
|
||||||
|
package bahndb_rest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx/v5"
|
||||||
|
"github.com/jackc/pgx/v5/pgconn"
|
||||||
|
)
|
||||||
|
|
||||||
|
type DBTX interface {
|
||||||
|
Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
|
||||||
|
Query(context.Context, string, ...interface{}) (pgx.Rows, error)
|
||||||
|
QueryRow(context.Context, string, ...interface{}) pgx.Row
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(db DBTX) *Queries {
|
||||||
|
return &Queries{db: db}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Queries struct {
|
||||||
|
db DBTX
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) WithTx(tx pgx.Tx) *Queries {
|
||||||
|
return &Queries{
|
||||||
|
db: tx,
|
||||||
|
}
|
||||||
|
}
|
||||||
173
queries/models.go
Normal file
173
queries/models.go
Normal file
|
|
@ -0,0 +1,173 @@
|
||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.28.0
|
||||||
|
|
||||||
|
package bahndb_rest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/jackc/pgx/v5/pgtype"
|
||||||
|
)
|
||||||
|
|
||||||
|
type HashHafasTid struct {
|
||||||
|
Thash pgtype.Text `json:"thash"`
|
||||||
|
Tripid pgtype.Text `json:"tripid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Location struct {
|
||||||
|
Tripid pgtype.Text `json:"tripid"`
|
||||||
|
Latitude pgtype.Float8 `json:"latitude"`
|
||||||
|
Longitude pgtype.Float8 `json:"longitude"`
|
||||||
|
Realtimedataupdatedat pgtype.Timestamptz `json:"realtimedataupdatedat"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Operator struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Name pgtype.Text `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Polyline struct {
|
||||||
|
Polyline []byte `json:"polyline"`
|
||||||
|
Linehash string `json:"linehash"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PolylineConnection struct {
|
||||||
|
Origin pgtype.Text `json:"origin"`
|
||||||
|
Destination pgtype.Text `json:"destination"`
|
||||||
|
Path []byte `json:"path"`
|
||||||
|
Hash pgtype.Text `json:"hash"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PolylineLinehashConnection struct {
|
||||||
|
Hash string `json:"hash"`
|
||||||
|
Connections []string `json:"connections"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PolylinesTrip struct {
|
||||||
|
Trip pgtype.Text `json:"trip"`
|
||||||
|
Polyline pgtype.Text `json:"polyline"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Remark struct {
|
||||||
|
Remhash string `json:"remhash"`
|
||||||
|
Content pgtype.Text `json:"content"`
|
||||||
|
Type pgtype.Text `json:"type"`
|
||||||
|
Code pgtype.Text `json:"code"`
|
||||||
|
Summary pgtype.Text `json:"summary"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RemarksTrip struct {
|
||||||
|
Tripid pgtype.Text `json:"tripid"`
|
||||||
|
Remhash pgtype.Text `json:"remhash"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SpatialRefSy struct {
|
||||||
|
Srid int32 `json:"srid"`
|
||||||
|
AuthName pgtype.Text `json:"auth_name"`
|
||||||
|
AuthSrid pgtype.Int4 `json:"auth_srid"`
|
||||||
|
Srtext pgtype.Text `json:"srtext"`
|
||||||
|
Proj4text pgtype.Text `json:"proj4text"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type StatLocation struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Latitude pgtype.Float8 `json:"latitude"`
|
||||||
|
Longitude pgtype.Float8 `json:"longitude"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type StatService struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Bus pgtype.Bool `json:"bus"`
|
||||||
|
Taxi pgtype.Bool `json:"taxi"`
|
||||||
|
Tram pgtype.Bool `json:"tram"`
|
||||||
|
Ferry pgtype.Bool `json:"ferry"`
|
||||||
|
Subway pgtype.Bool `json:"subway"`
|
||||||
|
National pgtype.Bool `json:"national"`
|
||||||
|
Regional pgtype.Bool `json:"regional"`
|
||||||
|
Suburban pgtype.Bool `json:"suburban"`
|
||||||
|
Regionalexp pgtype.Bool `json:"regionalexp"`
|
||||||
|
Nationalexp pgtype.Bool `json:"nationalexp"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type StationRank struct {
|
||||||
|
Stop string `json:"stop"`
|
||||||
|
Count pgtype.Int8 `json:"count"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Stop struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Name pgtype.Text `json:"name"`
|
||||||
|
LocationID pgtype.Text `json:"location_id"`
|
||||||
|
ServiceID pgtype.Text `json:"service_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type StopRemark struct {
|
||||||
|
Remhash string `json:"remhash"`
|
||||||
|
Content pgtype.Text `json:"content"`
|
||||||
|
Type pgtype.Text `json:"type"`
|
||||||
|
Code pgtype.Text `json:"code"`
|
||||||
|
Summary pgtype.Text `json:"summary"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type StopRemarksTrip struct {
|
||||||
|
Tripid pgtype.Text `json:"tripid"`
|
||||||
|
Stopid pgtype.Text `json:"stopid"`
|
||||||
|
Remhash pgtype.Text `json:"remhash"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Stopover struct {
|
||||||
|
ID pgtype.Text `json:"id"`
|
||||||
|
Stop pgtype.Text `json:"stop"`
|
||||||
|
Departure pgtype.Timestamptz `json:"departure"`
|
||||||
|
Planneddeparture pgtype.Timestamptz `json:"planneddeparture"`
|
||||||
|
Departuredelay pgtype.Int4 `json:"departuredelay"`
|
||||||
|
Arrival pgtype.Timestamptz `json:"arrival"`
|
||||||
|
Plannedarrival pgtype.Timestamptz `json:"plannedarrival"`
|
||||||
|
Arrivaldelay pgtype.Int4 `json:"arrivaldelay"`
|
||||||
|
Reachable pgtype.Bool `json:"reachable"`
|
||||||
|
Direction pgtype.Text `json:"direction"`
|
||||||
|
Arrivalplatform pgtype.Text `json:"arrivalplatform"`
|
||||||
|
Plannedarrivalplatform pgtype.Text `json:"plannedarrivalplatform"`
|
||||||
|
Departureplatform pgtype.Text `json:"departureplatform"`
|
||||||
|
Planneddepartureplatform pgtype.Text `json:"planneddepartureplatform"`
|
||||||
|
Arrivalprognosistype pgtype.Text `json:"arrivalprognosistype"`
|
||||||
|
Departureprognosistype pgtype.Text `json:"departureprognosistype"`
|
||||||
|
Cancelled pgtype.Text `json:"cancelled"`
|
||||||
|
Realtimedataupdatedat pgtype.Timestamptz `json:"realtimedataupdatedat"`
|
||||||
|
Nextstop pgtype.Bool `json:"nextstop"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Trip struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
LineID pgtype.Text `json:"line_id"`
|
||||||
|
LineFahrtnr pgtype.Text `json:"line_fahrtnr"`
|
||||||
|
LineName pgtype.Text `json:"line_name"`
|
||||||
|
LineAdmincode pgtype.Text `json:"line_admincode"`
|
||||||
|
LineProductname pgtype.Text `json:"line_productname"`
|
||||||
|
LineMode pgtype.Text `json:"line_mode"`
|
||||||
|
LineProduct pgtype.Text `json:"line_product"`
|
||||||
|
Operator pgtype.Text `json:"operator"`
|
||||||
|
Origin pgtype.Text `json:"origin"`
|
||||||
|
Destination pgtype.Text `json:"destination"`
|
||||||
|
Loadfactor pgtype.Text `json:"loadfactor"`
|
||||||
|
Realtimedataupdatedat pgtype.Timestamptz `json:"realtimedataupdatedat"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TripMetum struct {
|
||||||
|
ID pgtype.Text `json:"id"`
|
||||||
|
Departure pgtype.Timestamptz `json:"departure"`
|
||||||
|
Planneddeparture pgtype.Timestamptz `json:"planneddeparture"`
|
||||||
|
Departuredelay pgtype.Int4 `json:"departuredelay"`
|
||||||
|
Arrival pgtype.Timestamptz `json:"arrival"`
|
||||||
|
Plannedarrival pgtype.Timestamptz `json:"plannedarrival"`
|
||||||
|
Arrivaldelay pgtype.Int4 `json:"arrivaldelay"`
|
||||||
|
Reachable pgtype.Bool `json:"reachable"`
|
||||||
|
Direction pgtype.Text `json:"direction"`
|
||||||
|
Arrivalplatform pgtype.Text `json:"arrivalplatform"`
|
||||||
|
Plannedarrivalplatform pgtype.Text `json:"plannedarrivalplatform"`
|
||||||
|
Departureplatform pgtype.Text `json:"departureplatform"`
|
||||||
|
Planneddepartureplatform pgtype.Text `json:"planneddepartureplatform"`
|
||||||
|
Arrivalprognosistype pgtype.Text `json:"arrivalprognosistype"`
|
||||||
|
Departureprognosistype pgtype.Text `json:"departureprognosistype"`
|
||||||
|
Cancelled pgtype.Text `json:"cancelled"`
|
||||||
|
Realtimedataupdatedat pgtype.Timestamptz `json:"realtimedataupdatedat"`
|
||||||
|
}
|
||||||
267
queries/query.sql.go
Normal file
267
queries/query.sql.go
Normal file
|
|
@ -0,0 +1,267 @@
|
||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.28.0
|
||||||
|
// source: query.sql
|
||||||
|
|
||||||
|
package bahndb_rest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx/v5/pgtype"
|
||||||
|
)
|
||||||
|
|
||||||
|
const getDeparturesById = `-- name: GetDeparturesById :many
|
||||||
|
SELECT DISTINCT (t.id) as "id",
|
||||||
|
t.line_name as "lineName",
|
||||||
|
t.line_productname as "lineProductName",
|
||||||
|
so.departuredelay as "departureDelay",
|
||||||
|
jsonb_build_object('id', sd.id, 'name', sd.name) as "direction",
|
||||||
|
ARRAY((SELECT jsonb_build_object('stop', row('id', sd.id, 'name', sd.name),
|
||||||
|
'arrival', so2.arrival,
|
||||||
|
'plannedArrival', so2.plannedarrival,
|
||||||
|
'arrivalDelay', so2.arrivaldelay,
|
||||||
|
'arrivalPlatform', so2.arrivalplatform,
|
||||||
|
'plannedArrivalPlatform', so2.plannedarrivalplatform,
|
||||||
|
'cancelled', so2.cancelled)
|
||||||
|
FROM stopovers so2
|
||||||
|
JOIN public.stops s2
|
||||||
|
ON so2.stop = s2.id
|
||||||
|
WHERE so2.id = t.id
|
||||||
|
AND so2.plannedarrival > so.planneddeparture
|
||||||
|
AND (so2.stop, so2.realtimedataupdatedat) IN (SELECT DISTINCT (stop), max(realtimedataupdatedat)
|
||||||
|
FROM stopovers so3
|
||||||
|
WHERE (so3.id = t.id
|
||||||
|
AND so3.realtimedataupdatedat <= $1)
|
||||||
|
GROUP BY so3.stop)))
|
||||||
|
AS "stopovers",
|
||||||
|
so.departure as "departure",
|
||||||
|
so.planneddeparture as "plannedDeparture",
|
||||||
|
so.departureplatform as "departurePlatform",
|
||||||
|
so.planneddepartureplatform as "plannedDeparturePlatform",
|
||||||
|
so.cancelled as "cancelled",
|
||||||
|
so.realtimedataupdatedat as "realtimeDataUpdatedAt"
|
||||||
|
FROM stopovers so
|
||||||
|
JOIN trips t ON so.id = t.id
|
||||||
|
JOIN public.trip_meta tm on t.id = tm.id
|
||||||
|
JOIN public.stops sd on t.destination = sd.id
|
||||||
|
WHERE so.stop = $2
|
||||||
|
AND (so.id, so.realtimedataupdatedat) IN (SELECT DISTINCT (id), max(realtimedataupdatedat)
|
||||||
|
FROM stopovers so3
|
||||||
|
WHERE so3.stop = $2
|
||||||
|
AND (so3.departure > $3)
|
||||||
|
AND (so3.departure < $4)
|
||||||
|
AND (so3.realtimedataupdatedat <= $1)
|
||||||
|
GROUP BY so3.id)
|
||||||
|
ORDER BY so.departure ASC
|
||||||
|
`
|
||||||
|
|
||||||
|
type GetDeparturesByIdParams struct {
|
||||||
|
RtUpdatedAt pgtype.Timestamptz `json:"rt_updated_at"`
|
||||||
|
StopID pgtype.Text `json:"stop_id"`
|
||||||
|
DepartureFrom pgtype.Timestamptz `json:"departure_from"`
|
||||||
|
DepartureTo pgtype.Timestamptz `json:"departure_to"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetDeparturesByIdRow struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
LineName pgtype.Text `json:"lineName"`
|
||||||
|
LineProductName pgtype.Text `json:"lineProductName"`
|
||||||
|
DepartureDelay pgtype.Int4 `json:"departureDelay"`
|
||||||
|
Direction []byte `json:"direction"`
|
||||||
|
Stopovers interface{} `json:"stopovers"`
|
||||||
|
Departure pgtype.Timestamptz `json:"departure"`
|
||||||
|
PlannedDeparture pgtype.Timestamptz `json:"plannedDeparture"`
|
||||||
|
DeparturePlatform pgtype.Text `json:"departurePlatform"`
|
||||||
|
PlannedDeparturePlatform pgtype.Text `json:"plannedDeparturePlatform"`
|
||||||
|
Cancelled pgtype.Text `json:"cancelled"`
|
||||||
|
RealtimeDataUpdatedAt pgtype.Timestamptz `json:"realtimeDataUpdatedAt"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) GetDeparturesById(ctx context.Context, arg GetDeparturesByIdParams) ([]GetDeparturesByIdRow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, getDeparturesById,
|
||||||
|
arg.RtUpdatedAt,
|
||||||
|
arg.StopID,
|
||||||
|
arg.DepartureFrom,
|
||||||
|
arg.DepartureTo,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []GetDeparturesByIdRow
|
||||||
|
for rows.Next() {
|
||||||
|
var i GetDeparturesByIdRow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.LineName,
|
||||||
|
&i.LineProductName,
|
||||||
|
&i.DepartureDelay,
|
||||||
|
&i.Direction,
|
||||||
|
&i.Stopovers,
|
||||||
|
&i.Departure,
|
||||||
|
&i.PlannedDeparture,
|
||||||
|
&i.DeparturePlatform,
|
||||||
|
&i.PlannedDeparturePlatform,
|
||||||
|
&i.Cancelled,
|
||||||
|
&i.RealtimeDataUpdatedAt,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const getStationById = `-- name: GetStationById :one
|
||||||
|
SELECT s.id as "id",
|
||||||
|
s.name as "name",
|
||||||
|
sl.latitude as "latitude",
|
||||||
|
sl.longitude as "longitude",
|
||||||
|
bus,
|
||||||
|
taxi,
|
||||||
|
tram,
|
||||||
|
ferry,
|
||||||
|
subway,
|
||||||
|
national,
|
||||||
|
regional,
|
||||||
|
suburban,
|
||||||
|
regionalexp,
|
||||||
|
nationalexp
|
||||||
|
FROM stops s
|
||||||
|
JOIN public.stat_locations sl
|
||||||
|
on sl.id = s.location_id
|
||||||
|
JOIN public.stat_services ss
|
||||||
|
on ss.id = s.service_id
|
||||||
|
WHERE s.id = $1
|
||||||
|
`
|
||||||
|
|
||||||
|
type GetStationByIdRow struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Name pgtype.Text `json:"name"`
|
||||||
|
Latitude pgtype.Float8 `json:"latitude"`
|
||||||
|
Longitude pgtype.Float8 `json:"longitude"`
|
||||||
|
Bus pgtype.Bool `json:"bus"`
|
||||||
|
Taxi pgtype.Bool `json:"taxi"`
|
||||||
|
Tram pgtype.Bool `json:"tram"`
|
||||||
|
Ferry pgtype.Bool `json:"ferry"`
|
||||||
|
Subway pgtype.Bool `json:"subway"`
|
||||||
|
National pgtype.Bool `json:"national"`
|
||||||
|
Regional pgtype.Bool `json:"regional"`
|
||||||
|
Suburban pgtype.Bool `json:"suburban"`
|
||||||
|
Regionalexp pgtype.Bool `json:"regionalexp"`
|
||||||
|
Nationalexp pgtype.Bool `json:"nationalexp"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) GetStationById(ctx context.Context, stopID string) (GetStationByIdRow, error) {
|
||||||
|
row := q.db.QueryRow(ctx, getStationById, stopID)
|
||||||
|
var i GetStationByIdRow
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.Name,
|
||||||
|
&i.Latitude,
|
||||||
|
&i.Longitude,
|
||||||
|
&i.Bus,
|
||||||
|
&i.Taxi,
|
||||||
|
&i.Tram,
|
||||||
|
&i.Ferry,
|
||||||
|
&i.Subway,
|
||||||
|
&i.National,
|
||||||
|
&i.Regional,
|
||||||
|
&i.Suburban,
|
||||||
|
&i.Regionalexp,
|
||||||
|
&i.Nationalexp,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getStationsByName = `-- name: GetStationsByName :many
|
||||||
|
SELECT s.id as "id",
|
||||||
|
s.name as "name",
|
||||||
|
sl.latitude as "latitude",
|
||||||
|
sl.longitude as "longitude",
|
||||||
|
bus as "bus",
|
||||||
|
taxi as "taxi",
|
||||||
|
tram as "tram",
|
||||||
|
ferry as "ferry",
|
||||||
|
subway as "subway",
|
||||||
|
national as "national",
|
||||||
|
regional as "regional",
|
||||||
|
suburban as "suburban",
|
||||||
|
regionalexp as "regionalexp",
|
||||||
|
nationalexp as "nationalexp"
|
||||||
|
FROM stops s
|
||||||
|
JOIN public.stat_locations sl
|
||||||
|
on sl.id = s.location_id
|
||||||
|
JOIN public.stat_services ss
|
||||||
|
on ss.id = s.service_id
|
||||||
|
JOIN public.station_rank sr
|
||||||
|
on sr.stop = s.id
|
||||||
|
WHERE s.id
|
||||||
|
in (SELECT id
|
||||||
|
FROM stops s2
|
||||||
|
WHERE s2.name ILIKE ALL ($1::text[])
|
||||||
|
)
|
||||||
|
AND CASE WHEN $2::bool THEN (ss.national = $2::bool OR ss.nationalexp = $2::bool) ELSE TRUE END
|
||||||
|
ORDER BY sr.count DESC
|
||||||
|
`
|
||||||
|
|
||||||
|
type GetStationsByNameParams struct {
|
||||||
|
SearchParams []string `json:"search_params"`
|
||||||
|
LongDistance pgtype.Bool `json:"long_distance"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetStationsByNameRow struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Name pgtype.Text `json:"name"`
|
||||||
|
Latitude pgtype.Float8 `json:"latitude"`
|
||||||
|
Longitude pgtype.Float8 `json:"longitude"`
|
||||||
|
Bus pgtype.Bool `json:"bus"`
|
||||||
|
Taxi pgtype.Bool `json:"taxi"`
|
||||||
|
Tram pgtype.Bool `json:"tram"`
|
||||||
|
Ferry pgtype.Bool `json:"ferry"`
|
||||||
|
Subway pgtype.Bool `json:"subway"`
|
||||||
|
National pgtype.Bool `json:"national"`
|
||||||
|
Regional pgtype.Bool `json:"regional"`
|
||||||
|
Suburban pgtype.Bool `json:"suburban"`
|
||||||
|
Regionalexp pgtype.Bool `json:"regionalexp"`
|
||||||
|
Nationalexp pgtype.Bool `json:"nationalexp"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) GetStationsByName(ctx context.Context, arg GetStationsByNameParams) ([]GetStationsByNameRow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, getStationsByName, arg.SearchParams, arg.LongDistance)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []GetStationsByNameRow
|
||||||
|
for rows.Next() {
|
||||||
|
var i GetStationsByNameRow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.Name,
|
||||||
|
&i.Latitude,
|
||||||
|
&i.Longitude,
|
||||||
|
&i.Bus,
|
||||||
|
&i.Taxi,
|
||||||
|
&i.Tram,
|
||||||
|
&i.Ferry,
|
||||||
|
&i.Subway,
|
||||||
|
&i.National,
|
||||||
|
&i.Regional,
|
||||||
|
&i.Suburban,
|
||||||
|
&i.Regionalexp,
|
||||||
|
&i.Nationalexp,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue