From c1664cd689e6328d53b36720f403e9d6981546a1 Mon Sep 17 00:00:00 2001 From: sbouaram Date: Fri, 12 May 2023 15:12:55 +0200 Subject: [PATCH 1/7] adding psql --- .gitignore | 1 + storage/postgresql.go | 577 ++++++++++++++++++++++++++++++++++ storage/postgresql/schema.hcl | 88 ++++++ storage/storage.go | 3 + 4 files changed, 669 insertions(+) create mode 100644 storage/postgresql.go create mode 100644 storage/postgresql/schema.hcl diff --git a/.gitignore b/.gitignore index f702e7b..f77345f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ config.yaml .vscode +.idea __debug_bin \ No newline at end of file diff --git a/storage/postgresql.go b/storage/postgresql.go new file mode 100644 index 0000000..8eafed6 --- /dev/null +++ b/storage/postgresql.go @@ -0,0 +1,577 @@ +package storage + +import ( + "ariga.io/atlas/sql/postgres" + "ariga.io/atlas/sql/schema" + "context" + "database/sql" + "encoding/json" + "fmt" + "github.com/lib/pq" + _ "github.com/lib/pq" + "github.com/spf13/viper" + "os" + "strconv" +) + +type PostgresqlStorage struct { + DbConnection *sql.DB + Schema string + Tables map[string]string +} + +func NewPostgresqlStorage(cfg *viper.Viper) (PostgresqlStorage, error) { + var ( + host = cfg.GetString("storage.db.psql.host") + port = cfg.GetString("storage.db.psql.port") + user = cfg.GetString("storage.db.psql.user") + password = cfg.GetString("storage.db.psql.password") + dbname = cfg.GetString("storage.db.psql.dbname") + sslmode = cfg.GetString("storage.db.psql.sslmode") + pg_schema = cfg.GetString("storage.db.psql.schema") + pgtables_vehicle = cfg.GetString("storage.db.psql.tables.vehicle") + pgtables_booking = cfg.GetString("storage.db.psql.tables.booking") + timezone = "Europe/Paris" + ) + portInt, _ := strconv.Atoi(port) + psqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=%s TimeZone=%s", host, portInt, + user, password, dbname, sslmode, timezone) + db, err := sql.Open("postgres", psqlconn) + if err != nil { + fmt.Println("error", err) + return PostgresqlStorage{}, fmt.Errorf("connection to postgresql failed") + } + err = db.Ping() + if err != nil { + fmt.Println(err) + return PostgresqlStorage{}, fmt.Errorf("connection to postgresql database failed") + } + return PostgresqlStorage{ + DbConnection: db, + Schema: pg_schema, + Tables: map[string]string{ + "vehicle": fmt.Sprintf("%s.%s", pg_schema, pgtables_vehicle), + "booking": fmt.Sprintf("%s.%s", pg_schema, pgtables_booking), + }, + }, nil +} + +func (psql PostgresqlStorage) CreateVehicle(vehicle Vehicle) error { + tx, err := psql.DbConnection.Begin() + if err != nil { + return fmt.Errorf("failed to begin transaction: %w", err) + } + vehicleQuery := fmt.Sprintf(` + INSERT INTO %s (id, type, namespace, administrators, data, metadata) + VALUES ($1, $2, $3, $4, $5, $6) + `, psql.Tables["vehicle"]) + data, err := json.Marshal(vehicle.Data) + if err != nil { + return err + } + metadata, err := json.Marshal(vehicle.Metadata) + if err != nil { + return err + } + _, err = tx.Exec(vehicleQuery, vehicle.ID, vehicle.Type, vehicle.Namespace, pq.Array(vehicle.Administrators), + data, metadata) + if err != nil { + tx.Rollback() + return fmt.Errorf("failed to insert vehicle: %w", err) + } + bookingQuery := fmt.Sprintf(` + INSERT INTO %s (id, vehicleid, driver, startdate, enddate, unavailablefrom, unavailableto, data, deleted) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + `, psql.Tables["booking"]) + + for _, booking := range vehicle.Bookings { + dataBooking, err := json.Marshal(booking.Data) + if err != nil { + return err + } + _, err = tx.Exec(bookingQuery, booking.ID, booking.Vehicleid, booking.Driver, + booking.Startdate, booking.Enddate, booking.Unavailablefrom, booking.Unavailableto, + dataBooking, booking.Deleted) + if err != nil { + tx.Rollback() + return fmt.Errorf("failed to insert booking: %w", err) + } + } + err = tx.Commit() + if err != nil { + tx.Rollback() + return fmt.Errorf("failed to commit transaction: %w", err) + } + return nil +} + +func (psql PostgresqlStorage) GetVehicle(id string) (*Vehicle, error) { + vehicle := &Vehicle{} + var vehicleData []byte + var vehicleMetadata []byte + query := fmt.Sprintf(` + SELECT id, type, namespace, administrators, data, metadata + FROM %s + WHERE id = $1 + `, psql.Tables["vehicle"]) + + err := psql.DbConnection.QueryRow(query, id).Scan( + &vehicle.ID, + &vehicle.Type, + &vehicle.Namespace, + pq.Array(&vehicle.Administrators), + &vehicleData, + &vehicleMetadata, + ) + err = json.Unmarshal(vehicleData, &vehicle.Data) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle data") + } + err = json.Unmarshal(vehicleMetadata, &vehicle.Metadata) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle metadata") + } + if err != nil { + if err == sql.ErrNoRows { + return nil, fmt.Errorf("vehicle not found") + } + return nil, fmt.Errorf("failed to query database: %w", err) + } + + return vehicle, nil +} + +func (psql PostgresqlStorage) GetVehicles(namespaces []string) ([]Vehicle, error) { + var vehicles []Vehicle + if len(namespaces) == 0 { + return vehicles, nil + } + + query := fmt.Sprintf(` + SELECT id, type, namespace, administrators, data, metadata + FROM %s + WHERE namespace = ANY($1) +`, psql.Tables["vehicle"]) + + rows, err := psql.DbConnection.Query(query, pq.Array(namespaces)) + if err != nil { + return nil, fmt.Errorf("failed to query database: %w", err) + } + defer rows.Close() + + for rows.Next() { + var vehicle Vehicle + var administrators []string + var vehicleData []byte + var vehicleMetadata []byte + + scanArgs := []interface{}{ + &vehicle.ID, + &vehicle.Type, + &vehicle.Namespace, + pq.Array(&administrators), + &vehicleData, + &vehicleMetadata, + } + + err := rows.Scan(scanArgs...) + if err != nil { + return nil, fmt.Errorf("failed to scan row: %w", err) + } + + vehicle.Administrators = administrators + err = json.Unmarshal(vehicleData, &vehicle.Data) + if err != nil { + return nil, err + } + err = json.Unmarshal(vehicleMetadata, &vehicle.Metadata) + if err != nil { + return nil, err + } + + vehicles = append(vehicles, vehicle) + } + + if err := rows.Err(); err != nil { + return nil, fmt.Errorf("unexpected error after iterating rows: %w", err) + } + + return vehicles, nil +} + +func (psql PostgresqlStorage) CreateBooking(booking Booking) error { + query := fmt.Sprintf(` + INSERT INTO %s (id, vehicleid, driver, startdate, enddate, unavailablefrom, unavailableto, data, deleted) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + `, psql.Tables["booking"]) + + bookingData, err := json.Marshal(booking.Data) + if err != nil { + return fmt.Errorf("failed to marshal booking data: %w", err) + } + + _, err = psql.DbConnection.Exec(query, booking.ID, booking.Vehicleid, booking.Driver, booking.Startdate, + booking.Enddate, booking.Unavailablefrom, booking.Unavailableto, bookingData, booking.Deleted) + if err != nil { + return fmt.Errorf("failed to insert booking record: %w", err) + } + return nil +} + +func (psql PostgresqlStorage) UpdateBooking(bookingToUpdate Booking) error { + query := fmt.Sprintf(` + UPDATE %s SET + driver = $1, + startdate = $2, + enddate = $3, + unavailablefrom = $4, + unavailableto = $5, + data = $6, + deleted = $7 + WHERE id = $8 + `, psql.Tables["booking"]) + + bookingData, err := json.Marshal(bookingToUpdate.Data) + if err != nil { + return fmt.Errorf("failed to marshal booking data: %w", err) + } + + _, err = psql.DbConnection.Exec( + query, + bookingToUpdate.Driver, + bookingToUpdate.Startdate, + bookingToUpdate.Enddate, + bookingToUpdate.Unavailablefrom, + bookingToUpdate.Unavailableto, + bookingData, + bookingToUpdate.Deleted, + bookingToUpdate.ID, + ) + + if err != nil { + return fmt.Errorf("failed to update booking: %w", err) + } + + return nil +} +func (psql PostgresqlStorage) GetBooking(id string) (*Booking, error) { + booking := &Booking{} + + query := fmt.Sprintf(` + SELECT b.id, b.vehicleid, b.driver, b.startdate, b.enddate, + b.unavailablefrom, b.unavailableto, b.data, b.deleted, + v.id, v.type, v.namespace, v.administrators, v.data, v.metadata + FROM %s b + LEFT JOIN %s v ON b.vehicleid = v.id + WHERE b.id = $1 + `, psql.Tables["booking"], psql.Tables["vehicle"]) + + row := psql.DbConnection.QueryRow(query, id) + + var administrators []string + var bookingData []byte + var vehicleData []byte + var vehicleMetadata []byte + + err := row.Scan( + &booking.ID, + &booking.Vehicleid, + &booking.Driver, + &booking.Startdate, + &booking.Enddate, + &booking.Unavailablefrom, + &booking.Unavailableto, + &bookingData, + &booking.Deleted, + &booking.Vehicle.ID, + &booking.Vehicle.Type, + &booking.Vehicle.Namespace, + pq.Array(&administrators), + &vehicleData, + &vehicleMetadata, + ) + + if err != nil { + return nil, fmt.Errorf("error receiving booking: %w", err) + } + + err = json.Unmarshal(bookingData, &booking.Data) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal booking data: %w", err) + } + + err = json.Unmarshal(vehicleData, &booking.Vehicle.Data) + if err != nil { + return nil, err + } + err = json.Unmarshal(vehicleMetadata, &booking.Vehicle.Metadata) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle metadata: %w", err) + } + + booking.Vehicle.Administrators = administrators + + return booking, nil +} + +func (psql PostgresqlStorage) GetBookings() ([]Booking, error) { + var bookings []Booking + + query := fmt.Sprintf(` + SELECT b.id, b.vehicleid, b.driver, b.startdate, b.enddate, + b.unavailablefrom, b.unavailableto, b.data, b.deleted, + v.id, v.type, v.namespace, v.administrators, v.data, v.metadata + FROM %s b + LEFT JOIN %s v ON b.vehicleid = v.id + `, psql.Tables["booking"], psql.Tables["vehicle"]) + + rows, err := psql.DbConnection.Query(query) + if err != nil { + return nil, fmt.Errorf("failed to retrieve bookings: %w", err) + } + + defer rows.Close() + + for rows.Next() { + var booking Booking + + var administrators []string + var bookingData []byte + var vehicleData []byte + var vehicleMetadata []byte + + err = rows.Scan( + &booking.ID, + &booking.Vehicleid, + &booking.Driver, + &booking.Startdate, + &booking.Enddate, + &booking.Unavailablefrom, + &booking.Unavailableto, + &bookingData, + &booking.Deleted, + &booking.Vehicle.ID, + &booking.Vehicle.Type, + &booking.Vehicle.Namespace, + pq.Array(&administrators), + &vehicleData, + &vehicleMetadata, + ) + + if err != nil { + return nil, fmt.Errorf("error receiving booking: %w", err) + } + + err = json.Unmarshal(bookingData, &booking.Data) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal booking data: %w", err) + } + + err = json.Unmarshal(vehicleData, &booking.Vehicle.Data) + if err != nil { + return nil, err + } + + err = json.Unmarshal(vehicleMetadata, &booking.Vehicle.Metadata) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle metadata: %w", err) + } + + booking.Vehicle.Administrators = administrators + + bookings = append(bookings, booking) + } + + if err = rows.Err(); err != nil { + return nil, fmt.Errorf("failed to retrieve bookings: %w", err) + } + + return bookings, nil +} +func (psql PostgresqlStorage) GetBookingsForVehicle(vehicleid string) ([]Booking, error) { + var bookings []Booking + + query := fmt.Sprintf(` + SELECT b.id, b.vehicleid, b.driver, b.startdate, b.enddate, + b.unavailablefrom, b.unavailableto, b.data, b.deleted, + v.id, v.type, v.namespace, v.administrators, v.data, v.metadata + FROM %s b + LEFT JOIN %s v ON b.vehicleid = v.id + WHERE b.vehicleid = $1 + `, psql.Tables["booking"], psql.Tables["vehicle"]) + + rows, err := psql.DbConnection.Query(query, vehicleid) + if err != nil { + return nil, fmt.Errorf("error retrieving bookings for vehicle: %w", err) + } + + for rows.Next() { + var administrators []string + var bookingData []byte + var vehicleData []byte + var vehicleMetadata []byte + var booking Booking + + err := rows.Scan( + &booking.ID, + &booking.Vehicleid, + &booking.Driver, + &booking.Startdate, + &booking.Enddate, + &booking.Unavailablefrom, + &booking.Unavailableto, + &bookingData, + &booking.Deleted, + &booking.Vehicle.ID, + &booking.Vehicle.Type, + &booking.Vehicle.Namespace, + pq.Array(&administrators), + &vehicleData, + &vehicleMetadata, + ) + + if err != nil { + return nil, fmt.Errorf("error scanning booking row: %w", err) + } + + err = json.Unmarshal(bookingData, &booking.Data) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal booking data: %w", err) + } + + err = json.Unmarshal(vehicleData, &booking.Vehicle.Data) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle data: %w", err) + } + + err = json.Unmarshal(vehicleMetadata, &booking.Vehicle.Metadata) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle metadata: %w", err) + } + + booking.Vehicle.Administrators = administrators + bookings = append(bookings, booking) + } + + if err := rows.Err(); err != nil { + return nil, fmt.Errorf("error iterating over booking rows: %w", err) + } + + return bookings, nil +} +func (psql PostgresqlStorage) GetBookingsForDriver(driver string) ([]Booking, error) { + bookings := []Booking{} + + query := fmt.Sprintf(` + SELECT b.id, b.vehicleid, b.driver, b.startdate, b.enddate, + b.unavailablefrom, b.unavailableto, b.data, b.deleted, + v.id, v.type, v.namespace, v.administrators, v.data, v.metadata + FROM %s b + LEFT JOIN %s v ON b.vehicleid = v.id + WHERE b.driver = $1 + `, psql.Tables["booking"], psql.Tables["vehicle"]) + + rows, err := psql.DbConnection.Query(query, driver) + if err != nil { + return nil, fmt.Errorf("error querying bookings: %w", err) + } + + defer rows.Close() + + for rows.Next() { + booking := Booking{} + var administrators []string + var bookingData []byte + var vehicleData []byte + var vehicleMetadata []byte + + err = rows.Scan( + &booking.ID, + &booking.Vehicleid, + &booking.Driver, + &booking.Startdate, + &booking.Enddate, + &booking.Unavailablefrom, + &booking.Unavailableto, + &bookingData, + &booking.Deleted, + &booking.Vehicle.ID, + &booking.Vehicle.Type, + &booking.Vehicle.Namespace, + pq.Array(&administrators), + &vehicleData, + &vehicleMetadata, + ) + + if err != nil { + return nil, fmt.Errorf("error scanning bookings: %w", err) + } + + err = json.Unmarshal(bookingData, &booking.Data) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal booking data: %w", err) + } + + err = json.Unmarshal(vehicleData, &booking.Vehicle.Data) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle data: %w", err) + } + err = json.Unmarshal(vehicleMetadata, &booking.Vehicle.Metadata) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal vehicle metadata: %w", err) + } + + booking.Vehicle.Administrators = administrators + + bookings = append(bookings, booking) + } + + return bookings, nil +} + +func (psql PostgresqlStorage) DeleteBooking(id string) error { + query := fmt.Sprintf(` + DELETE FROM %s + WHERE id = $1 + `, psql.Tables["booking"]) + _, err := psql.DbConnection.Exec(query, id) + if err != nil { + return fmt.Errorf("error deleting booking: %v", err) + } + return nil +} + +func (psql PostgresqlStorage) Migrate() error { + ctx := context.Background() + driver, err := postgres.Open(psql.DbConnection) + if err != nil { + return err + } + existing, err := driver.InspectRealm(ctx, &schema.InspectRealmOption{Schemas: []string{psql.Schema}}) + if err != nil { + return err + } + + var desired schema.Realm + + hcl, err := os.ReadFile("postgresql/schema.hcl") + if err != nil { + return err + } + + err = postgres.EvalHCLBytes(hcl, &desired, nil) + if err != nil { + return err + } + + diff, err := driver.RealmDiff(existing, &desired) + if err != nil { + return err + } + + err = driver.ApplyChanges(ctx, diff) + if err != nil { + return err + } + return nil +} diff --git a/storage/postgresql/schema.hcl b/storage/postgresql/schema.hcl new file mode 100644 index 0000000..37d7dfb --- /dev/null +++ b/storage/postgresql/schema.hcl @@ -0,0 +1,88 @@ +table "booking" { + schema = schema.fleets + column "id" { + null = false + type = uuid + } + column "vehicleid" { + null = true + type = uuid + } + column "driver" { + null = true + type = text + } + column "startdate" { + null = true + type = timestamptz + } + column "enddate" { + null = true + type = timestamptz + } + column "unavailablefrom" { + null = true + type = timestamptz + } + column "unavailableto" { + null = true + type = timestamptz + } + column "data" { + null = true + type = jsonb + } + column "deleted" { + null = true + type = boolean + } + primary_key { + columns = [column.id] + } + foreign_key "booking_vehicleid_fkey" { + columns = [column.vehicleid] + ref_columns = [table.vehicle.column.id] + on_update = NO_ACTION + on_delete = NO_ACTION + } + foreign_key "vehicle_booking_fk" { + columns = [column.vehicleid] + ref_columns = [table.vehicle.column.id] + on_update = NO_ACTION + on_delete = NO_ACTION + } +} + +table "vehicle" { + schema = schema.fleets + column "id" { + null = false + type = uuid + } + column "type" { + null = true + type = text + } + column "namespace" { + null = true + type = text + } + column "administrators" { + null = true + type = sql("text[]") + } + column "data" { + null = true + type = jsonb + } + column "metadata" { + null = true + type = jsonb + } + primary_key { + columns = [column.id] + } +} + +schema "fleets" { +} diff --git a/storage/storage.go b/storage/storage.go index 3d9e902..c23c0d5 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -32,6 +32,9 @@ func NewStorage(cfg *viper.Viper) (Storage, error) { case "mongodb": s, err := NewMongoDBStorage(cfg) return s, err + case "psql": + s, err := NewPostgresqlStorage(cfg) + return s, err default: return nil, fmt.Errorf("storage type %v is not supported", storage_type) } From c18fbf037fe85d56014ed96f6d58ab30bf07f6aa Mon Sep 17 00:00:00 2001 From: mfrigo Date: Wed, 6 Sep 2023 13:36:02 +0200 Subject: [PATCH 2/7] [+] create branch mika --- go.mod | 13 +++++++++++-- go.sum | 43 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index bf4ac87..a160331 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,9 @@ module git.coopgo.io/coopgo-platform/fleets go 1.18 require ( + ariga.io/atlas v0.13.1 github.com/google/uuid v1.3.0 + github.com/lib/pq v1.10.9 github.com/spf13/viper v1.12.0 go.mongodb.org/mongo-driver v1.10.1 google.golang.org/grpc v1.46.2 @@ -11,12 +13,18 @@ require ( ) require ( + github.com/agext/levenshtein v1.2.1 // indirect + github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/go-openapi/inflect v0.19.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.1 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl/v2 v2.10.0 // indirect github.com/klauspost/compress v1.13.6 // indirect github.com/magiconair/properties v1.8.6 // indirect + github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect github.com/pelletier/go-toml v1.9.5 // indirect @@ -31,11 +39,12 @@ require ( github.com/xdg-go/scram v1.1.1 // indirect github.com/xdg-go/stringprep v1.0.3 // indirect github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect + github.com/zclconf/go-cty v1.8.0 // indirect golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect - golang.org/x/text v0.3.7 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 6734bce..1d3c247 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +ariga.io/atlas v0.13.1 h1:oSkEYgI3qUnQZ6b6+teAEiIuizjBvkZ4YDbz0XWfCdQ= +ariga.io/atlas v0.13.1/go.mod h1:+TR129FJZ5Lvzms6dvCeGWh1yR6hMvmXBhug4hrNIGk= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -38,7 +40,14 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= +github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8= +github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= +github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= +github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= +github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -69,6 +78,10 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4= +github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= +github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= +github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -80,6 +93,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -113,6 +127,7 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -138,6 +153,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl/v2 v2.10.0 h1:1S1UnuhDGlv3gRFV4+0EdwB+znNP5HmcGbIqwnSCByg= +github.com/hashicorp/hcl/v2 v2.10.0/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -151,8 +168,14 @@ github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= +github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM= +github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0= @@ -170,12 +193,15 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= +github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= @@ -192,6 +218,9 @@ github.com/subosito/gotenv v1.3.0 h1:mjC+YW8QpAdXibNi+vNWgzmgBH4+5l5dCXv8cNysBLI github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= @@ -204,6 +233,10 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= +github.com/zclconf/go-cty v1.8.0 h1:s4AvqaeQzJIu3ndv4gVIhplVD0krU+bgrcLSVUnaWuA= +github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4= go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -214,6 +247,7 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -256,6 +290,7 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -316,6 +351,7 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -349,8 +385,8 @@ golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -360,8 +396,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 08fcfe304331a81752b10d74f4aa31522350ec69 Mon Sep 17 00:00:00 2001 From: mfrigo Date: Fri, 24 Nov 2023 17:11:03 +0100 Subject: [PATCH 3/7] merge fleets --- storage/postgresql.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/storage/postgresql.go b/storage/postgresql.go index 8eafed6..2eb1b3b 100644 --- a/storage/postgresql.go +++ b/storage/postgresql.go @@ -1,17 +1,18 @@ package storage import ( - "ariga.io/atlas/sql/postgres" - "ariga.io/atlas/sql/schema" "context" "database/sql" "encoding/json" "fmt" + "os" + "strconv" + + "ariga.io/atlas/sql/postgres" + "ariga.io/atlas/sql/schema" "github.com/lib/pq" _ "github.com/lib/pq" "github.com/spf13/viper" - "os" - "strconv" ) type PostgresqlStorage struct { From a7e98eef043b6765bb6648af264a88e905631a82 Mon Sep 17 00:00:00 2001 From: mfrigo Date: Mon, 27 Nov 2023 10:53:59 +0100 Subject: [PATCH 4/7] merge --- storage/postgresql.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/storage/postgresql.go b/storage/postgresql.go index 2eb1b3b..02bbf40 100644 --- a/storage/postgresql.go +++ b/storage/postgresql.go @@ -576,3 +576,7 @@ func (psql PostgresqlStorage) Migrate() error { } return nil } + +func (psql PostgresqlStorage) UpdateVehicle(vehicle Vehicle) error { + return nil +} From 192af1061508e84db8e9a78b05893d94d1ad0443 Mon Sep 17 00:00:00 2001 From: Nicolas Caron Date: Thu, 4 Apr 2024 12:22:49 +0200 Subject: [PATCH 5/7] add .gitea/worflows/build.yml --- .gitea/workflows/build.yml | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..912a100 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,82 @@ +name: Build and Push Docker Image + +on: + push: + tags: + - '*' + branches: + - main + - dev + +jobs: + build_and_push: + runs-on: ubuntu-latest + + steps: + - name: Install Docker + run: | + apt-get update + apt-get install -y docker.io + + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set Kubernetes Context + uses: azure/k8s-set-context@v4 + with: + method: kubeconfig + kubeconfig: ${{secrets.buildx_kubeconfig}} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + driver: kubernetes + driver-opts: | + namespace=gitea + + - name: Login to Docker Registry + uses: docker/login-action@v3 + with: + registry: git.coopgo.io + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker image + id: metadata + uses: docker/metadata-action@v3 + with: + images: git.coopgo.io/${{gitea.repository}} + tags: | + type=ref,event=branch + type=ref,event=tag + type=ref,event=pr + flavor: | + latest=auto + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + ${{ steps.metadata.outputs.tags }} + build-args: | + ACCESS_TOKEN_USR=${{gitea.actor}} + ACCESS_TOKEN_PWD=${{gitea.token}} + + # BUILD WITH KANIKO + # - name: Kaniko build and push + # uses: aevea/action-kaniko@master + # with: + # build_file: Dockerfile + # registry: git.coopgo.io + # username: ${{secrets.registry_user}} + # password: ${{secrets.registry_token}} + # image: ${{gitea.repository}} + # tag: ${{gitea.ref_name}} + # cache: true + # cache_registry: git.coopgo.io/${{gitea.repository}}/cache + # extra-args: | + # ACCESS_TOKEN_USR=${{gitea.actor}} + # ACCESS_TOKEN_PWD=${{gitea.token}} + From 708b16343aabfb066654dbef9fdbe008ef7c5370 Mon Sep 17 00:00:00 2001 From: Nicolas Caron Date: Fri, 5 Apr 2024 12:18:27 +0200 Subject: [PATCH 6/7] test actions --- .gitea/workflows/build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 912a100..a7678ae 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -79,4 +79,3 @@ jobs: # extra-args: | # ACCESS_TOKEN_USR=${{gitea.actor}} # ACCESS_TOKEN_PWD=${{gitea.token}} - From 5bc6ac0e7b5408f134bf084de7af35872b83aee3 Mon Sep 17 00:00:00 2001 From: Arnaud Delcasse Date: Wed, 8 Oct 2025 09:27:56 +0200 Subject: [PATCH 7/7] deleted bookings management --- .gitignore | 3 +- README.md | 3 +- go.mod | 21 +- go.sum | 39 +- grpcapi/bookings.go | 3 +- grpcapi/fleets.pb.go | 1067 ++++++++++++------------------------- grpcapi/fleets.proto | 4 + grpcapi/fleets_grpc.pb.go | 106 ++-- grpcapi/grpcapi.go | 10 +- grpcapi/vehicles.pb.go | 165 ++---- grpcapi/vehicles.proto | 3 +- handlers/bookings.go | 39 +- handlers/vehicles.go | 49 +- storage/vehicles.go | 1 + 14 files changed, 573 insertions(+), 940 deletions(-) diff --git a/.gitignore b/.gitignore index f77345f..af909de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ config.yaml .vscode .idea -__debug_bin \ No newline at end of file +__debug_bin +fleets diff --git a/README.md b/README.md index 74527b5..bbcb740 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,5 @@ It provides : - availability information on véhicles - a flexible data schema to push any information on vehicles or bookings -It is not a full featured booking platform but just a microservice intended to be used as part of a bigger platform, like the COOPGO Technical Platform. It doesn't provide any king of booking UI or management interface. \ No newline at end of file +It is not a full featured booking platform but just a microservice intended to be used as part of a bigger platform, like the COOPGO Technical Platform. It doesn't provide any king of booking UI or management interface. + diff --git a/go.mod b/go.mod index a160331..cd14de5 100644 --- a/go.mod +++ b/go.mod @@ -1,15 +1,15 @@ module git.coopgo.io/coopgo-platform/fleets -go 1.18 +go 1.23 require ( ariga.io/atlas v0.13.1 - github.com/google/uuid v1.3.0 + github.com/google/uuid v1.6.0 github.com/lib/pq v1.10.9 github.com/spf13/viper v1.12.0 go.mongodb.org/mongo-driver v1.10.1 - google.golang.org/grpc v1.46.2 - google.golang.org/protobuf v1.28.0 + google.golang.org/grpc v1.65.0 + google.golang.org/protobuf v1.34.1 ) require ( @@ -17,9 +17,8 @@ require ( github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/go-openapi/inflect v0.19.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.1 // indirect - github.com/google/go-cmp v0.5.8 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/hcl/v2 v2.10.0 // indirect github.com/klauspost/compress v1.13.6 // indirect @@ -40,11 +39,11 @@ require ( github.com/xdg-go/stringprep v1.0.3 // indirect github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect github.com/zclconf/go-cty v1.8.0 // indirect - golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect - golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/text v0.8.0 // indirect + golang.org/x/crypto v0.23.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 1d3c247..c0c8525 100644 --- a/go.sum +++ b/go.sum @@ -41,6 +41,7 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= +github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -72,6 +73,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -109,7 +111,6 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -126,8 +127,8 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -143,8 +144,8 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= @@ -165,9 +166,11 @@ github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= @@ -193,6 +196,7 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= @@ -254,8 +258,9 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -323,8 +328,8 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 h1:NWy5+hlRbC7HK+PmcXVUmW1IMyFce7to56IUvhUFm7Y= -golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -344,8 +349,9 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -385,8 +391,8 @@ golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -397,8 +403,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -537,8 +543,8 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.46.2 h1:u+MLGgVf7vRdjEYZ8wDFhAVNmhkbJ5hmrA1LMWK1CAQ= -google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -552,8 +558,9 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/grpcapi/bookings.go b/grpcapi/bookings.go index a5f3b06..879b912 100644 --- a/grpcapi/bookings.go +++ b/grpcapi/bookings.go @@ -20,6 +20,7 @@ func (v Booking) ToStorageType() storage.Booking { Unavailablefrom: v.Unavailablefrom.AsTime(), Unavailableto: v.Unavailableto.AsTime(), Data: map[string]any{}, + Deleted: v.Deleted, } for k, d := range v.Data.GetFields() { @@ -41,7 +42,6 @@ func (v Booking) ToStorageType() storage.Booking { } func BookingFromStorageType(booking *storage.Booking) (*Booking, error) { - d, err := sanitizeData(booking.Data) if err != nil { return nil, err @@ -62,6 +62,7 @@ func BookingFromStorageType(booking *storage.Booking) (*Booking, error) { Unavailablefrom: timestamppb.New(booking.Unavailablefrom), Unavailableto: timestamppb.New(booking.Unavailableto), Data: data, + Deleted: booking.Deleted, } result.Vehicle, err = VehicleFromStorageType(&booking.Vehicle) diff --git a/grpcapi/fleets.pb.go b/grpcapi/fleets.pb.go index 76e3515..06beb4c 100644 --- a/grpcapi/fleets.pb.go +++ b/grpcapi/fleets.pb.go @@ -2,8 +2,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 -// protoc v3.19.4 +// protoc-gen-go v1.36.7 +// protoc v6.31.1 // source: fleets.proto package grpcapi @@ -11,9 +11,11 @@ package grpcapi import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -24,20 +26,17 @@ const ( ) type AddVehicleRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicle *Vehicle `protobuf:"bytes,1,opt,name=vehicle,proto3" json:"vehicle,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicle *Vehicle `protobuf:"bytes,1,opt,name=vehicle,proto3" json:"vehicle,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AddVehicleRequest) Reset() { *x = AddVehicleRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddVehicleRequest) String() string { @@ -48,7 +47,7 @@ func (*AddVehicleRequest) ProtoMessage() {} func (x *AddVehicleRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -71,20 +70,17 @@ func (x *AddVehicleRequest) GetVehicle() *Vehicle { } type AddVehicleResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicle *Vehicle `protobuf:"bytes,2,opt,name=vehicle,proto3" json:"vehicle,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicle *Vehicle `protobuf:"bytes,2,opt,name=vehicle,proto3" json:"vehicle,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AddVehicleResponse) Reset() { *x = AddVehicleResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddVehicleResponse) String() string { @@ -95,7 +91,7 @@ func (*AddVehicleResponse) ProtoMessage() {} func (x *AddVehicleResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -118,20 +114,17 @@ func (x *AddVehicleResponse) GetVehicle() *Vehicle { } type GetVehicleRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicleid string `protobuf:"bytes,3,opt,name=vehicleid,proto3" json:"vehicleid,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicleid string `protobuf:"bytes,3,opt,name=vehicleid,proto3" json:"vehicleid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetVehicleRequest) Reset() { *x = GetVehicleRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVehicleRequest) String() string { @@ -142,7 +135,7 @@ func (*GetVehicleRequest) ProtoMessage() {} func (x *GetVehicleRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -165,20 +158,17 @@ func (x *GetVehicleRequest) GetVehicleid() string { } type GetVehicleResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicle *Vehicle `protobuf:"bytes,4,opt,name=vehicle,proto3" json:"vehicle,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicle *Vehicle `protobuf:"bytes,4,opt,name=vehicle,proto3" json:"vehicle,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetVehicleResponse) Reset() { *x = GetVehicleResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVehicleResponse) String() string { @@ -189,7 +179,7 @@ func (*GetVehicleResponse) ProtoMessage() {} func (x *GetVehicleResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -212,24 +202,22 @@ func (x *GetVehicleResponse) GetVehicle() *Vehicle { } type GetVehiclesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Namespaces []string `protobuf:"bytes,5,rep,name=namespaces,proto3" json:"namespaces,omitempty"` Types []string `protobuf:"bytes,6,rep,name=types,proto3" json:"types,omitempty"` Administrators []string `protobuf:"bytes,7,rep,name=administrators,proto3" json:"administrators,omitempty"` AvailabilityFrom *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=availability_from,json=availabilityFrom,proto3" json:"availability_from,omitempty"` AvailabilityTo *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=availability_to,json=availabilityTo,proto3" json:"availability_to,omitempty"` + IncludeDeleted bool `protobuf:"varint,10,opt,name=include_deleted,json=includeDeleted,proto3" json:"include_deleted,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetVehiclesRequest) Reset() { *x = GetVehiclesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVehiclesRequest) String() string { @@ -240,7 +228,7 @@ func (*GetVehiclesRequest) ProtoMessage() {} func (x *GetVehiclesRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -290,21 +278,25 @@ func (x *GetVehiclesRequest) GetAvailabilityTo() *timestamppb.Timestamp { return nil } -type GetVehiclesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *GetVehiclesRequest) GetIncludeDeleted() bool { + if x != nil { + return x.IncludeDeleted + } + return false +} - Vehicles []*Vehicle `protobuf:"bytes,6,rep,name=vehicles,proto3" json:"vehicles,omitempty"` +type GetVehiclesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Vehicles []*Vehicle `protobuf:"bytes,6,rep,name=vehicles,proto3" json:"vehicles,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetVehiclesResponse) Reset() { *x = GetVehiclesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVehiclesResponse) String() string { @@ -315,7 +307,7 @@ func (*GetVehiclesResponse) ProtoMessage() {} func (x *GetVehiclesResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -338,20 +330,17 @@ func (x *GetVehiclesResponse) GetVehicles() []*Vehicle { } type GetVehiclesBatchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehiclesids []string `protobuf:"bytes,7,rep,name=vehiclesids,proto3" json:"vehiclesids,omitempty"` unknownFields protoimpl.UnknownFields - - Vehiclesids []string `protobuf:"bytes,7,rep,name=vehiclesids,proto3" json:"vehiclesids,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetVehiclesBatchRequest) Reset() { *x = GetVehiclesBatchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVehiclesBatchRequest) String() string { @@ -362,7 +351,7 @@ func (*GetVehiclesBatchRequest) ProtoMessage() {} func (x *GetVehiclesBatchRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -385,20 +374,17 @@ func (x *GetVehiclesBatchRequest) GetVehiclesids() []string { } type GetVehiclesBatchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicles []*Vehicle `protobuf:"bytes,8,rep,name=vehicles,proto3" json:"vehicles,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicles []*Vehicle `protobuf:"bytes,8,rep,name=vehicles,proto3" json:"vehicles,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetVehiclesBatchResponse) Reset() { *x = GetVehiclesBatchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVehiclesBatchResponse) String() string { @@ -409,7 +395,7 @@ func (*GetVehiclesBatchResponse) ProtoMessage() {} func (x *GetVehiclesBatchResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -432,20 +418,17 @@ func (x *GetVehiclesBatchResponse) GetVehicles() []*Vehicle { } type UpdateVehicleRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicle *Vehicle `protobuf:"bytes,9,opt,name=vehicle,proto3" json:"vehicle,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicle *Vehicle `protobuf:"bytes,9,opt,name=vehicle,proto3" json:"vehicle,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateVehicleRequest) Reset() { *x = UpdateVehicleRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateVehicleRequest) String() string { @@ -456,7 +439,7 @@ func (*UpdateVehicleRequest) ProtoMessage() {} func (x *UpdateVehicleRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -479,20 +462,17 @@ func (x *UpdateVehicleRequest) GetVehicle() *Vehicle { } type UpdateVehicleResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicle *Vehicle `protobuf:"bytes,10,opt,name=vehicle,proto3" json:"vehicle,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicle *Vehicle `protobuf:"bytes,10,opt,name=vehicle,proto3" json:"vehicle,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateVehicleResponse) Reset() { *x = UpdateVehicleResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateVehicleResponse) String() string { @@ -503,7 +483,7 @@ func (*UpdateVehicleResponse) ProtoMessage() {} func (x *UpdateVehicleResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -526,20 +506,17 @@ func (x *UpdateVehicleResponse) GetVehicle() *Vehicle { } type CreateBookingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Booking *Booking `protobuf:"bytes,11,opt,name=booking,proto3" json:"booking,omitempty"` unknownFields protoimpl.UnknownFields - - Booking *Booking `protobuf:"bytes,11,opt,name=booking,proto3" json:"booking,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateBookingRequest) Reset() { *x = CreateBookingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateBookingRequest) String() string { @@ -550,7 +527,7 @@ func (*CreateBookingRequest) ProtoMessage() {} func (x *CreateBookingRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -573,20 +550,17 @@ func (x *CreateBookingRequest) GetBooking() *Booking { } type CreateBookingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Booking *Booking `protobuf:"bytes,12,opt,name=booking,proto3" json:"booking,omitempty"` unknownFields protoimpl.UnknownFields - - Booking *Booking `protobuf:"bytes,12,opt,name=booking,proto3" json:"booking,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateBookingResponse) Reset() { *x = CreateBookingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateBookingResponse) String() string { @@ -597,7 +571,7 @@ func (*CreateBookingResponse) ProtoMessage() {} func (x *CreateBookingResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -620,20 +594,17 @@ func (x *CreateBookingResponse) GetBooking() *Booking { } type UpdateBookingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Booking *Booking `protobuf:"bytes,13,opt,name=booking,proto3" json:"booking,omitempty"` unknownFields protoimpl.UnknownFields - - Booking *Booking `protobuf:"bytes,13,opt,name=booking,proto3" json:"booking,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateBookingRequest) Reset() { *x = UpdateBookingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateBookingRequest) String() string { @@ -644,7 +615,7 @@ func (*UpdateBookingRequest) ProtoMessage() {} func (x *UpdateBookingRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -667,20 +638,17 @@ func (x *UpdateBookingRequest) GetBooking() *Booking { } type UpdateBookingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Booking *Booking `protobuf:"bytes,14,opt,name=booking,proto3" json:"booking,omitempty"` unknownFields protoimpl.UnknownFields - - Booking *Booking `protobuf:"bytes,14,opt,name=booking,proto3" json:"booking,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateBookingResponse) Reset() { *x = UpdateBookingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateBookingResponse) String() string { @@ -691,7 +659,7 @@ func (*UpdateBookingResponse) ProtoMessage() {} func (x *UpdateBookingResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -714,20 +682,18 @@ func (x *UpdateBookingResponse) GetBooking() *Booking { } type DeleteBookingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,15,opt,name=id,proto3" json:"id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,15,opt,name=id,proto3" json:"id,omitempty"` + DeletionMetadata *structpb.Struct `protobuf:"bytes,30,opt,name=deletion_metadata,json=deletionMetadata,proto3" json:"deletion_metadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteBookingRequest) Reset() { *x = DeleteBookingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteBookingRequest) String() string { @@ -738,7 +704,7 @@ func (*DeleteBookingRequest) ProtoMessage() {} func (x *DeleteBookingRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -760,21 +726,25 @@ func (x *DeleteBookingRequest) GetId() string { return "" } -type DeleteBookingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *DeleteBookingRequest) GetDeletionMetadata() *structpb.Struct { + if x != nil { + return x.DeletionMetadata + } + return nil +} - Ok bool `protobuf:"varint,16,opt,name=ok,proto3" json:"ok,omitempty"` +type DeleteBookingResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Ok bool `protobuf:"varint,16,opt,name=ok,proto3" json:"ok,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteBookingResponse) Reset() { *x = DeleteBookingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteBookingResponse) String() string { @@ -785,7 +755,7 @@ func (*DeleteBookingResponse) ProtoMessage() {} func (x *DeleteBookingResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -808,24 +778,21 @@ func (x *DeleteBookingResponse) GetOk() bool { } type FindVehicleRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Namespace string `protobuf:"bytes,17,opt,name=namespace,proto3" json:"namespace,omitempty"` + Startdate *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=startdate,proto3" json:"startdate,omitempty"` + Enddate *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=enddate,proto3" json:"enddate,omitempty"` + Lat float64 `protobuf:"fixed64,20,opt,name=lat,proto3" json:"lat,omitempty"` + Lon float64 `protobuf:"fixed64,21,opt,name=lon,proto3" json:"lon,omitempty"` unknownFields protoimpl.UnknownFields - - Namespace string `protobuf:"bytes,17,opt,name=namespace,proto3" json:"namespace,omitempty"` - Startdate *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=startdate,proto3" json:"startdate,omitempty"` - Enddate *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=enddate,proto3" json:"enddate,omitempty"` - Lat float64 `protobuf:"fixed64,20,opt,name=lat,proto3" json:"lat,omitempty"` - Lon float64 `protobuf:"fixed64,21,opt,name=lon,proto3" json:"lon,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FindVehicleRequest) Reset() { *x = FindVehicleRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FindVehicleRequest) String() string { @@ -836,7 +803,7 @@ func (*FindVehicleRequest) ProtoMessage() {} func (x *FindVehicleRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -887,20 +854,17 @@ func (x *FindVehicleRequest) GetLon() float64 { } type FindVehicleResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vehicles []*Vehicle `protobuf:"bytes,22,rep,name=vehicles,proto3" json:"vehicles,omitempty"` unknownFields protoimpl.UnknownFields - - Vehicles []*Vehicle `protobuf:"bytes,22,rep,name=vehicles,proto3" json:"vehicles,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FindVehicleResponse) Reset() { *x = FindVehicleResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FindVehicleResponse) String() string { @@ -911,7 +875,7 @@ func (*FindVehicleResponse) ProtoMessage() {} func (x *FindVehicleResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -934,20 +898,17 @@ func (x *FindVehicleResponse) GetVehicles() []*Vehicle { } type GetBookingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Bookingid string `protobuf:"bytes,23,opt,name=bookingid,proto3" json:"bookingid,omitempty"` unknownFields protoimpl.UnknownFields - - Bookingid string `protobuf:"bytes,23,opt,name=bookingid,proto3" json:"bookingid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetBookingRequest) Reset() { *x = GetBookingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBookingRequest) String() string { @@ -958,7 +919,7 @@ func (*GetBookingRequest) ProtoMessage() {} func (x *GetBookingRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -981,20 +942,17 @@ func (x *GetBookingRequest) GetBookingid() string { } type GetBookingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Booking *Booking `protobuf:"bytes,24,opt,name=booking,proto3" json:"booking,omitempty"` unknownFields protoimpl.UnknownFields - - Booking *Booking `protobuf:"bytes,24,opt,name=booking,proto3" json:"booking,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetBookingResponse) Reset() { *x = GetBookingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBookingResponse) String() string { @@ -1005,7 +963,7 @@ func (*GetBookingResponse) ProtoMessage() {} func (x *GetBookingResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1028,20 +986,17 @@ func (x *GetBookingResponse) GetBooking() *Booking { } type GetDriverBookingsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Driver string `protobuf:"bytes,25,opt,name=driver,proto3" json:"driver,omitempty"` unknownFields protoimpl.UnknownFields - - Driver string `protobuf:"bytes,25,opt,name=driver,proto3" json:"driver,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetDriverBookingsRequest) Reset() { *x = GetDriverBookingsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetDriverBookingsRequest) String() string { @@ -1052,7 +1007,7 @@ func (*GetDriverBookingsRequest) ProtoMessage() {} func (x *GetDriverBookingsRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1075,20 +1030,17 @@ func (x *GetDriverBookingsRequest) GetDriver() string { } type GetDriverBookingsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Bookings []*Booking `protobuf:"bytes,26,rep,name=bookings,proto3" json:"bookings,omitempty"` unknownFields protoimpl.UnknownFields - - Bookings []*Booking `protobuf:"bytes,26,rep,name=bookings,proto3" json:"bookings,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetDriverBookingsResponse) Reset() { *x = GetDriverBookingsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetDriverBookingsResponse) String() string { @@ -1099,7 +1051,7 @@ func (*GetDriverBookingsResponse) ProtoMessage() {} func (x *GetDriverBookingsResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1122,20 +1074,18 @@ func (x *GetDriverBookingsResponse) GetBookings() []*Booking { } type GetBookingsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespaces []string `protobuf:"bytes,27,rep,name=namespaces,proto3" json:"namespaces,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Namespaces []string `protobuf:"bytes,27,rep,name=namespaces,proto3" json:"namespaces,omitempty"` + IncludeDeleted bool `protobuf:"varint,29,opt,name=include_deleted,json=includeDeleted,proto3" json:"include_deleted,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetBookingsRequest) Reset() { *x = GetBookingsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBookingsRequest) String() string { @@ -1146,7 +1096,7 @@ func (*GetBookingsRequest) ProtoMessage() {} func (x *GetBookingsRequest) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1168,21 +1118,25 @@ func (x *GetBookingsRequest) GetNamespaces() []string { return nil } -type GetBookingsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *GetBookingsRequest) GetIncludeDeleted() bool { + if x != nil { + return x.IncludeDeleted + } + return false +} - Bookings []*Booking `protobuf:"bytes,28,rep,name=bookings,proto3" json:"bookings,omitempty"` +type GetBookingsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Bookings []*Booking `protobuf:"bytes,28,rep,name=bookings,proto3" json:"bookings,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetBookingsResponse) Reset() { *x = GetBookingsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_fleets_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_fleets_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBookingsResponse) String() string { @@ -1193,7 +1147,7 @@ func (*GetBookingsResponse) ProtoMessage() {} func (x *GetBookingsResponse) ProtoReflect() protoreflect.Message { mi := &file_fleets_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1217,182 +1171,104 @@ func (x *GetBookingsResponse) GetBookings() []*Booking { var File_fleets_proto protoreflect.FileDescriptor -var file_fleets_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x0e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x37, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, - 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x22, 0x38, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x56, - 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, - 0x0a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x08, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, - 0x6c, 0x65, 0x22, 0x31, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, 0x68, 0x69, 0x63, - 0x6c, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x68, 0x69, - 0x63, 0x6c, 0x65, 0x69, 0x64, 0x22, 0x38, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, - 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x76, - 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x56, - 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x22, - 0x80, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x43, 0x0a, - 0x0f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6f, 0x22, 0x3b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x65, 0x68, - 0x69, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x56, 0x65, - 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x08, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x22, - 0x3b, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x65, - 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x69, 0x64, 0x73, 0x22, 0x40, 0x0a, 0x18, - 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x65, 0x68, 0x69, - 0x63, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x56, 0x65, 0x68, - 0x69, 0x63, 0x6c, 0x65, 0x52, 0x08, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x22, 0x3a, - 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x22, 0x3b, 0x0a, 0x15, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x07, - 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x22, 0x3a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x22, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x22, 0x3b, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x07, - 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, - 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x22, 0x3a, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x3b, 0x0a, 0x15, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x26, 0x0a, 0x14, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x27, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, - 0x69, 0x6e, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x38, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x64, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x61, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, - 0x6c, 0x6f, 0x6e, 0x22, 0x3b, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x65, - 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x56, - 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x08, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, - 0x22, 0x31, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x69, 0x64, 0x22, 0x38, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x62, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x32, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, - 0x72, 0x22, 0x41, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x42, 0x6f, - 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, - 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x73, 0x22, 0x34, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x24, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x1c, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x62, - 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x32, 0xbd, 0x05, 0x0a, 0x06, 0x46, 0x6c, 0x65, 0x65, - 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, - 0x12, 0x12, 0x2e, 0x41, 0x64, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x41, 0x64, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0a, 0x47, - 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x12, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, - 0x6c, 0x65, 0x73, 0x12, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, - 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x40, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x12, 0x15, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x12, 0x15, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x12, 0x12, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, - 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x13, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x19, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x47, 0x65, 0x74, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x46, - 0x69, 0x6e, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x13, 0x2e, 0x46, 0x69, 0x6e, - 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x63, - 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x73, 0x2f, - 0x67, 0x72, 0x70, 0x63, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_fleets_proto_rawDesc = "" + + "\n" + + "\ffleets.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x0evehicles.proto\"7\n" + + "\x11AddVehicleRequest\x12\"\n" + + "\avehicle\x18\x01 \x01(\v2\b.VehicleR\avehicle\"8\n" + + "\x12AddVehicleResponse\x12\"\n" + + "\avehicle\x18\x02 \x01(\v2\b.VehicleR\avehicle\"1\n" + + "\x11GetVehicleRequest\x12\x1c\n" + + "\tvehicleid\x18\x03 \x01(\tR\tvehicleid\"8\n" + + "\x12GetVehicleResponse\x12\"\n" + + "\avehicle\x18\x04 \x01(\v2\b.VehicleR\avehicle\"\xa9\x02\n" + + "\x12GetVehiclesRequest\x12\x1e\n" + + "\n" + + "namespaces\x18\x05 \x03(\tR\n" + + "namespaces\x12\x14\n" + + "\x05types\x18\x06 \x03(\tR\x05types\x12&\n" + + "\x0eadministrators\x18\a \x03(\tR\x0eadministrators\x12G\n" + + "\x11availability_from\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\x10availabilityFrom\x12C\n" + + "\x0favailability_to\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\x0eavailabilityTo\x12'\n" + + "\x0finclude_deleted\x18\n" + + " \x01(\bR\x0eincludeDeleted\";\n" + + "\x13GetVehiclesResponse\x12$\n" + + "\bvehicles\x18\x06 \x03(\v2\b.VehicleR\bvehicles\";\n" + + "\x17GetVehiclesBatchRequest\x12 \n" + + "\vvehiclesids\x18\a \x03(\tR\vvehiclesids\"@\n" + + "\x18GetVehiclesBatchResponse\x12$\n" + + "\bvehicles\x18\b \x03(\v2\b.VehicleR\bvehicles\":\n" + + "\x14UpdateVehicleRequest\x12\"\n" + + "\avehicle\x18\t \x01(\v2\b.VehicleR\avehicle\";\n" + + "\x15UpdateVehicleResponse\x12\"\n" + + "\avehicle\x18\n" + + " \x01(\v2\b.VehicleR\avehicle\":\n" + + "\x14CreateBookingRequest\x12\"\n" + + "\abooking\x18\v \x01(\v2\b.BookingR\abooking\";\n" + + "\x15CreateBookingResponse\x12\"\n" + + "\abooking\x18\f \x01(\v2\b.BookingR\abooking\":\n" + + "\x14UpdateBookingRequest\x12\"\n" + + "\abooking\x18\r \x01(\v2\b.BookingR\abooking\";\n" + + "\x15UpdateBookingResponse\x12\"\n" + + "\abooking\x18\x0e \x01(\v2\b.BookingR\abooking\"l\n" + + "\x14DeleteBookingRequest\x12\x0e\n" + + "\x02id\x18\x0f \x01(\tR\x02id\x12D\n" + + "\x11deletion_metadata\x18\x1e \x01(\v2\x17.google.protobuf.StructR\x10deletionMetadata\"'\n" + + "\x15DeleteBookingResponse\x12\x0e\n" + + "\x02ok\x18\x10 \x01(\bR\x02ok\"\xc6\x01\n" + + "\x12FindVehicleRequest\x12\x1c\n" + + "\tnamespace\x18\x11 \x01(\tR\tnamespace\x128\n" + + "\tstartdate\x18\x12 \x01(\v2\x1a.google.protobuf.TimestampR\tstartdate\x124\n" + + "\aenddate\x18\x13 \x01(\v2\x1a.google.protobuf.TimestampR\aenddate\x12\x10\n" + + "\x03lat\x18\x14 \x01(\x01R\x03lat\x12\x10\n" + + "\x03lon\x18\x15 \x01(\x01R\x03lon\";\n" + + "\x13FindVehicleResponse\x12$\n" + + "\bvehicles\x18\x16 \x03(\v2\b.VehicleR\bvehicles\"1\n" + + "\x11GetBookingRequest\x12\x1c\n" + + "\tbookingid\x18\x17 \x01(\tR\tbookingid\"8\n" + + "\x12GetBookingResponse\x12\"\n" + + "\abooking\x18\x18 \x01(\v2\b.BookingR\abooking\"2\n" + + "\x18GetDriverBookingsRequest\x12\x16\n" + + "\x06driver\x18\x19 \x01(\tR\x06driver\"A\n" + + "\x19GetDriverBookingsResponse\x12$\n" + + "\bbookings\x18\x1a \x03(\v2\b.BookingR\bbookings\"]\n" + + "\x12GetBookingsRequest\x12\x1e\n" + + "\n" + + "namespaces\x18\x1b \x03(\tR\n" + + "namespaces\x12'\n" + + "\x0finclude_deleted\x18\x1d \x01(\bR\x0eincludeDeleted\";\n" + + "\x13GetBookingsResponse\x12$\n" + + "\bbookings\x18\x1c \x03(\v2\b.BookingR\bbookings2\xbd\x05\n" + + "\x06Fleets\x127\n" + + "\n" + + "AddVehicle\x12\x12.AddVehicleRequest\x1a\x13.AddVehicleResponse\"\x00\x127\n" + + "\n" + + "GetVehicle\x12\x12.GetVehicleRequest\x1a\x13.GetVehicleResponse\"\x00\x12:\n" + + "\vGetVehicles\x12\x13.GetVehiclesRequest\x1a\x14.GetVehiclesResponse\"\x00\x12@\n" + + "\rUpdateVehicle\x12\x15.UpdateVehicleRequest\x1a\x16.UpdateVehicleResponse\"\x00\x12@\n" + + "\rCreateBooking\x12\x15.CreateBookingRequest\x1a\x16.CreateBookingResponse\"\x00\x127\n" + + "\n" + + "GetBooking\x12\x12.GetBookingRequest\x1a\x13.GetBookingResponse\"\x00\x12:\n" + + "\vGetBookings\x12\x13.GetBookingsRequest\x1a\x14.GetBookingsResponse\"\x00\x12L\n" + + "\x11GetDriverBookings\x12\x19.GetDriverBookingsRequest\x1a\x1a.GetDriverBookingsResponse\"\x00\x12@\n" + + "\rUpdateBooking\x12\x15.UpdateBookingRequest\x1a\x16.UpdateBookingResponse\"\x00\x12@\n" + + "\rDeleteBooking\x12\x15.DeleteBookingRequest\x1a\x16.DeleteBookingResponse\"\x00\x12:\n" + + "\vFindVehicle\x12\x13.FindVehicleRequest\x1a\x14.FindVehicleResponse\"\x00B.Z,git.coopgo.io/coopgo-platform/fleets/grpcapib\x06proto3" var ( file_fleets_proto_rawDescOnce sync.Once - file_fleets_proto_rawDescData = file_fleets_proto_rawDesc + file_fleets_proto_rawDescData []byte ) func file_fleets_proto_rawDescGZIP() []byte { file_fleets_proto_rawDescOnce.Do(func() { - file_fleets_proto_rawDescData = protoimpl.X.CompressGZIP(file_fleets_proto_rawDescData) + file_fleets_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_fleets_proto_rawDesc), len(file_fleets_proto_rawDesc))) }) return file_fleets_proto_rawDescData } var file_fleets_proto_msgTypes = make([]protoimpl.MessageInfo, 24) -var file_fleets_proto_goTypes = []interface{}{ +var file_fleets_proto_goTypes = []any{ (*AddVehicleRequest)(nil), // 0: AddVehicleRequest (*AddVehicleResponse)(nil), // 1: AddVehicleResponse (*GetVehicleRequest)(nil), // 2: GetVehicleRequest @@ -1420,6 +1296,7 @@ var file_fleets_proto_goTypes = []interface{}{ (*Vehicle)(nil), // 24: Vehicle (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp (*Booking)(nil), // 26: Booking + (*structpb.Struct)(nil), // 27: google.protobuf.Struct } var file_fleets_proto_depIdxs = []int32{ 24, // 0: AddVehicleRequest.vehicle:type_name -> Vehicle @@ -1435,39 +1312,40 @@ var file_fleets_proto_depIdxs = []int32{ 26, // 10: CreateBookingResponse.booking:type_name -> Booking 26, // 11: UpdateBookingRequest.booking:type_name -> Booking 26, // 12: UpdateBookingResponse.booking:type_name -> Booking - 25, // 13: FindVehicleRequest.startdate:type_name -> google.protobuf.Timestamp - 25, // 14: FindVehicleRequest.enddate:type_name -> google.protobuf.Timestamp - 24, // 15: FindVehicleResponse.vehicles:type_name -> Vehicle - 26, // 16: GetBookingResponse.booking:type_name -> Booking - 26, // 17: GetDriverBookingsResponse.bookings:type_name -> Booking - 26, // 18: GetBookingsResponse.bookings:type_name -> Booking - 0, // 19: Fleets.AddVehicle:input_type -> AddVehicleRequest - 2, // 20: Fleets.GetVehicle:input_type -> GetVehicleRequest - 4, // 21: Fleets.GetVehicles:input_type -> GetVehiclesRequest - 8, // 22: Fleets.UpdateVehicle:input_type -> UpdateVehicleRequest - 10, // 23: Fleets.CreateBooking:input_type -> CreateBookingRequest - 18, // 24: Fleets.GetBooking:input_type -> GetBookingRequest - 22, // 25: Fleets.GetBookings:input_type -> GetBookingsRequest - 20, // 26: Fleets.GetDriverBookings:input_type -> GetDriverBookingsRequest - 12, // 27: Fleets.UpdateBooking:input_type -> UpdateBookingRequest - 14, // 28: Fleets.DeleteBooking:input_type -> DeleteBookingRequest - 16, // 29: Fleets.FindVehicle:input_type -> FindVehicleRequest - 1, // 30: Fleets.AddVehicle:output_type -> AddVehicleResponse - 3, // 31: Fleets.GetVehicle:output_type -> GetVehicleResponse - 5, // 32: Fleets.GetVehicles:output_type -> GetVehiclesResponse - 9, // 33: Fleets.UpdateVehicle:output_type -> UpdateVehicleResponse - 11, // 34: Fleets.CreateBooking:output_type -> CreateBookingResponse - 19, // 35: Fleets.GetBooking:output_type -> GetBookingResponse - 23, // 36: Fleets.GetBookings:output_type -> GetBookingsResponse - 21, // 37: Fleets.GetDriverBookings:output_type -> GetDriverBookingsResponse - 13, // 38: Fleets.UpdateBooking:output_type -> UpdateBookingResponse - 15, // 39: Fleets.DeleteBooking:output_type -> DeleteBookingResponse - 17, // 40: Fleets.FindVehicle:output_type -> FindVehicleResponse - 30, // [30:41] is the sub-list for method output_type - 19, // [19:30] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 27, // 13: DeleteBookingRequest.deletion_metadata:type_name -> google.protobuf.Struct + 25, // 14: FindVehicleRequest.startdate:type_name -> google.protobuf.Timestamp + 25, // 15: FindVehicleRequest.enddate:type_name -> google.protobuf.Timestamp + 24, // 16: FindVehicleResponse.vehicles:type_name -> Vehicle + 26, // 17: GetBookingResponse.booking:type_name -> Booking + 26, // 18: GetDriverBookingsResponse.bookings:type_name -> Booking + 26, // 19: GetBookingsResponse.bookings:type_name -> Booking + 0, // 20: Fleets.AddVehicle:input_type -> AddVehicleRequest + 2, // 21: Fleets.GetVehicle:input_type -> GetVehicleRequest + 4, // 22: Fleets.GetVehicles:input_type -> GetVehiclesRequest + 8, // 23: Fleets.UpdateVehicle:input_type -> UpdateVehicleRequest + 10, // 24: Fleets.CreateBooking:input_type -> CreateBookingRequest + 18, // 25: Fleets.GetBooking:input_type -> GetBookingRequest + 22, // 26: Fleets.GetBookings:input_type -> GetBookingsRequest + 20, // 27: Fleets.GetDriverBookings:input_type -> GetDriverBookingsRequest + 12, // 28: Fleets.UpdateBooking:input_type -> UpdateBookingRequest + 14, // 29: Fleets.DeleteBooking:input_type -> DeleteBookingRequest + 16, // 30: Fleets.FindVehicle:input_type -> FindVehicleRequest + 1, // 31: Fleets.AddVehicle:output_type -> AddVehicleResponse + 3, // 32: Fleets.GetVehicle:output_type -> GetVehicleResponse + 5, // 33: Fleets.GetVehicles:output_type -> GetVehiclesResponse + 9, // 34: Fleets.UpdateVehicle:output_type -> UpdateVehicleResponse + 11, // 35: Fleets.CreateBooking:output_type -> CreateBookingResponse + 19, // 36: Fleets.GetBooking:output_type -> GetBookingResponse + 23, // 37: Fleets.GetBookings:output_type -> GetBookingsResponse + 21, // 38: Fleets.GetDriverBookings:output_type -> GetDriverBookingsResponse + 13, // 39: Fleets.UpdateBooking:output_type -> UpdateBookingResponse + 15, // 40: Fleets.DeleteBooking:output_type -> DeleteBookingResponse + 17, // 41: Fleets.FindVehicle:output_type -> FindVehicleResponse + 31, // [31:42] is the sub-list for method output_type + 20, // [20:31] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_fleets_proto_init() } @@ -1476,301 +1354,11 @@ func file_fleets_proto_init() { return } file_vehicles_proto_init() - if !protoimpl.UnsafeEnabled { - file_fleets_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddVehicleRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddVehicleResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVehicleRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVehicleResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVehiclesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVehiclesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVehiclesBatchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVehiclesBatchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateVehicleRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateVehicleResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateBookingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateBookingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateBookingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateBookingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteBookingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteBookingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindVehicleRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindVehicleResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBookingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBookingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDriverBookingsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDriverBookingsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBookingsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_fleets_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBookingsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_fleets_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_fleets_proto_rawDesc), len(file_fleets_proto_rawDesc)), NumEnums: 0, NumMessages: 24, NumExtensions: 0, @@ -1781,7 +1369,6 @@ func file_fleets_proto_init() { MessageInfos: file_fleets_proto_msgTypes, }.Build() File_fleets_proto = out.File - file_fleets_proto_rawDesc = nil file_fleets_proto_goTypes = nil file_fleets_proto_depIdxs = nil } diff --git a/grpcapi/fleets.proto b/grpcapi/fleets.proto index c85a2f8..a0f3ddf 100644 --- a/grpcapi/fleets.proto +++ b/grpcapi/fleets.proto @@ -5,6 +5,7 @@ syntax = "proto3"; option go_package = "git.coopgo.io/coopgo-platform/fleets/grpcapi"; import "google/protobuf/timestamp.proto"; +import "google/protobuf/struct.proto"; import "vehicles.proto"; @@ -50,6 +51,7 @@ message GetVehiclesRequest { repeated string administrators = 7; google.protobuf.Timestamp availability_from = 8; google.protobuf.Timestamp availability_to = 9; + bool include_deleted = 10; } message GetVehiclesResponse { @@ -90,6 +92,7 @@ message UpdateBookingResponse { message DeleteBookingRequest { string id = 15; + google.protobuf.Struct deletion_metadata = 30; } message DeleteBookingResponse { @@ -126,6 +129,7 @@ message GetDriverBookingsResponse { message GetBookingsRequest { repeated string namespaces = 27; + bool include_deleted = 29; } message GetBookingsResponse { diff --git a/grpcapi/fleets_grpc.pb.go b/grpcapi/fleets_grpc.pb.go index ba3d9d3..8e33978 100644 --- a/grpcapi/fleets_grpc.pb.go +++ b/grpcapi/fleets_grpc.pb.go @@ -1,7 +1,9 @@ +//COOPGO Groups Management gRPC service definition + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc-gen-go-grpc v1.5.1 +// - protoc v6.31.1 // source: fleets.proto package grpcapi @@ -15,8 +17,22 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Fleets_AddVehicle_FullMethodName = "/Fleets/AddVehicle" + Fleets_GetVehicle_FullMethodName = "/Fleets/GetVehicle" + Fleets_GetVehicles_FullMethodName = "/Fleets/GetVehicles" + Fleets_UpdateVehicle_FullMethodName = "/Fleets/UpdateVehicle" + Fleets_CreateBooking_FullMethodName = "/Fleets/CreateBooking" + Fleets_GetBooking_FullMethodName = "/Fleets/GetBooking" + Fleets_GetBookings_FullMethodName = "/Fleets/GetBookings" + Fleets_GetDriverBookings_FullMethodName = "/Fleets/GetDriverBookings" + Fleets_UpdateBooking_FullMethodName = "/Fleets/UpdateBooking" + Fleets_DeleteBooking_FullMethodName = "/Fleets/DeleteBooking" + Fleets_FindVehicle_FullMethodName = "/Fleets/FindVehicle" +) // FleetsClient is the client API for Fleets service. // @@ -27,14 +43,14 @@ type FleetsClient interface { GetVehicle(ctx context.Context, in *GetVehicleRequest, opts ...grpc.CallOption) (*GetVehicleResponse, error) GetVehicles(ctx context.Context, in *GetVehiclesRequest, opts ...grpc.CallOption) (*GetVehiclesResponse, error) UpdateVehicle(ctx context.Context, in *UpdateVehicleRequest, opts ...grpc.CallOption) (*UpdateVehicleResponse, error) - //Bookings + // Bookings CreateBooking(ctx context.Context, in *CreateBookingRequest, opts ...grpc.CallOption) (*CreateBookingResponse, error) GetBooking(ctx context.Context, in *GetBookingRequest, opts ...grpc.CallOption) (*GetBookingResponse, error) GetBookings(ctx context.Context, in *GetBookingsRequest, opts ...grpc.CallOption) (*GetBookingsResponse, error) GetDriverBookings(ctx context.Context, in *GetDriverBookingsRequest, opts ...grpc.CallOption) (*GetDriverBookingsResponse, error) UpdateBooking(ctx context.Context, in *UpdateBookingRequest, opts ...grpc.CallOption) (*UpdateBookingResponse, error) DeleteBooking(ctx context.Context, in *DeleteBookingRequest, opts ...grpc.CallOption) (*DeleteBookingResponse, error) - //Search / Availabilities + // Search / Availabilities FindVehicle(ctx context.Context, in *FindVehicleRequest, opts ...grpc.CallOption) (*FindVehicleResponse, error) } @@ -47,8 +63,9 @@ func NewFleetsClient(cc grpc.ClientConnInterface) FleetsClient { } func (c *fleetsClient) AddVehicle(ctx context.Context, in *AddVehicleRequest, opts ...grpc.CallOption) (*AddVehicleResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(AddVehicleResponse) - err := c.cc.Invoke(ctx, "/Fleets/AddVehicle", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_AddVehicle_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -56,8 +73,9 @@ func (c *fleetsClient) AddVehicle(ctx context.Context, in *AddVehicleRequest, op } func (c *fleetsClient) GetVehicle(ctx context.Context, in *GetVehicleRequest, opts ...grpc.CallOption) (*GetVehicleResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetVehicleResponse) - err := c.cc.Invoke(ctx, "/Fleets/GetVehicle", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_GetVehicle_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -65,8 +83,9 @@ func (c *fleetsClient) GetVehicle(ctx context.Context, in *GetVehicleRequest, op } func (c *fleetsClient) GetVehicles(ctx context.Context, in *GetVehiclesRequest, opts ...grpc.CallOption) (*GetVehiclesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetVehiclesResponse) - err := c.cc.Invoke(ctx, "/Fleets/GetVehicles", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_GetVehicles_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -74,8 +93,9 @@ func (c *fleetsClient) GetVehicles(ctx context.Context, in *GetVehiclesRequest, } func (c *fleetsClient) UpdateVehicle(ctx context.Context, in *UpdateVehicleRequest, opts ...grpc.CallOption) (*UpdateVehicleResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UpdateVehicleResponse) - err := c.cc.Invoke(ctx, "/Fleets/UpdateVehicle", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_UpdateVehicle_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -83,8 +103,9 @@ func (c *fleetsClient) UpdateVehicle(ctx context.Context, in *UpdateVehicleReque } func (c *fleetsClient) CreateBooking(ctx context.Context, in *CreateBookingRequest, opts ...grpc.CallOption) (*CreateBookingResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CreateBookingResponse) - err := c.cc.Invoke(ctx, "/Fleets/CreateBooking", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_CreateBooking_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -92,8 +113,9 @@ func (c *fleetsClient) CreateBooking(ctx context.Context, in *CreateBookingReque } func (c *fleetsClient) GetBooking(ctx context.Context, in *GetBookingRequest, opts ...grpc.CallOption) (*GetBookingResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetBookingResponse) - err := c.cc.Invoke(ctx, "/Fleets/GetBooking", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_GetBooking_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -101,8 +123,9 @@ func (c *fleetsClient) GetBooking(ctx context.Context, in *GetBookingRequest, op } func (c *fleetsClient) GetBookings(ctx context.Context, in *GetBookingsRequest, opts ...grpc.CallOption) (*GetBookingsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetBookingsResponse) - err := c.cc.Invoke(ctx, "/Fleets/GetBookings", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_GetBookings_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -110,8 +133,9 @@ func (c *fleetsClient) GetBookings(ctx context.Context, in *GetBookingsRequest, } func (c *fleetsClient) GetDriverBookings(ctx context.Context, in *GetDriverBookingsRequest, opts ...grpc.CallOption) (*GetDriverBookingsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetDriverBookingsResponse) - err := c.cc.Invoke(ctx, "/Fleets/GetDriverBookings", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_GetDriverBookings_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -119,8 +143,9 @@ func (c *fleetsClient) GetDriverBookings(ctx context.Context, in *GetDriverBooki } func (c *fleetsClient) UpdateBooking(ctx context.Context, in *UpdateBookingRequest, opts ...grpc.CallOption) (*UpdateBookingResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UpdateBookingResponse) - err := c.cc.Invoke(ctx, "/Fleets/UpdateBooking", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_UpdateBooking_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -128,8 +153,9 @@ func (c *fleetsClient) UpdateBooking(ctx context.Context, in *UpdateBookingReque } func (c *fleetsClient) DeleteBooking(ctx context.Context, in *DeleteBookingRequest, opts ...grpc.CallOption) (*DeleteBookingResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DeleteBookingResponse) - err := c.cc.Invoke(ctx, "/Fleets/DeleteBooking", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_DeleteBooking_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -137,8 +163,9 @@ func (c *fleetsClient) DeleteBooking(ctx context.Context, in *DeleteBookingReque } func (c *fleetsClient) FindVehicle(ctx context.Context, in *FindVehicleRequest, opts ...grpc.CallOption) (*FindVehicleResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(FindVehicleResponse) - err := c.cc.Invoke(ctx, "/Fleets/FindVehicle", in, out, opts...) + err := c.cc.Invoke(ctx, Fleets_FindVehicle_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -147,28 +174,31 @@ func (c *fleetsClient) FindVehicle(ctx context.Context, in *FindVehicleRequest, // FleetsServer is the server API for Fleets service. // All implementations must embed UnimplementedFleetsServer -// for forward compatibility +// for forward compatibility. type FleetsServer interface { // Vehicles management AddVehicle(context.Context, *AddVehicleRequest) (*AddVehicleResponse, error) GetVehicle(context.Context, *GetVehicleRequest) (*GetVehicleResponse, error) GetVehicles(context.Context, *GetVehiclesRequest) (*GetVehiclesResponse, error) UpdateVehicle(context.Context, *UpdateVehicleRequest) (*UpdateVehicleResponse, error) - //Bookings + // Bookings CreateBooking(context.Context, *CreateBookingRequest) (*CreateBookingResponse, error) GetBooking(context.Context, *GetBookingRequest) (*GetBookingResponse, error) GetBookings(context.Context, *GetBookingsRequest) (*GetBookingsResponse, error) GetDriverBookings(context.Context, *GetDriverBookingsRequest) (*GetDriverBookingsResponse, error) UpdateBooking(context.Context, *UpdateBookingRequest) (*UpdateBookingResponse, error) DeleteBooking(context.Context, *DeleteBookingRequest) (*DeleteBookingResponse, error) - //Search / Availabilities + // Search / Availabilities FindVehicle(context.Context, *FindVehicleRequest) (*FindVehicleResponse, error) mustEmbedUnimplementedFleetsServer() } -// UnimplementedFleetsServer must be embedded to have forward compatible implementations. -type UnimplementedFleetsServer struct { -} +// UnimplementedFleetsServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedFleetsServer struct{} func (UnimplementedFleetsServer) AddVehicle(context.Context, *AddVehicleRequest) (*AddVehicleResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddVehicle not implemented") @@ -204,6 +234,7 @@ func (UnimplementedFleetsServer) FindVehicle(context.Context, *FindVehicleReques return nil, status.Errorf(codes.Unimplemented, "method FindVehicle not implemented") } func (UnimplementedFleetsServer) mustEmbedUnimplementedFleetsServer() {} +func (UnimplementedFleetsServer) testEmbeddedByValue() {} // UnsafeFleetsServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FleetsServer will @@ -213,6 +244,13 @@ type UnsafeFleetsServer interface { } func RegisterFleetsServer(s grpc.ServiceRegistrar, srv FleetsServer) { + // If the following call pancis, it indicates UnimplementedFleetsServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&Fleets_ServiceDesc, srv) } @@ -226,7 +264,7 @@ func _Fleets_AddVehicle_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/AddVehicle", + FullMethod: Fleets_AddVehicle_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).AddVehicle(ctx, req.(*AddVehicleRequest)) @@ -244,7 +282,7 @@ func _Fleets_GetVehicle_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/GetVehicle", + FullMethod: Fleets_GetVehicle_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).GetVehicle(ctx, req.(*GetVehicleRequest)) @@ -262,7 +300,7 @@ func _Fleets_GetVehicles_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/GetVehicles", + FullMethod: Fleets_GetVehicles_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).GetVehicles(ctx, req.(*GetVehiclesRequest)) @@ -280,7 +318,7 @@ func _Fleets_UpdateVehicle_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/UpdateVehicle", + FullMethod: Fleets_UpdateVehicle_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).UpdateVehicle(ctx, req.(*UpdateVehicleRequest)) @@ -298,7 +336,7 @@ func _Fleets_CreateBooking_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/CreateBooking", + FullMethod: Fleets_CreateBooking_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).CreateBooking(ctx, req.(*CreateBookingRequest)) @@ -316,7 +354,7 @@ func _Fleets_GetBooking_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/GetBooking", + FullMethod: Fleets_GetBooking_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).GetBooking(ctx, req.(*GetBookingRequest)) @@ -334,7 +372,7 @@ func _Fleets_GetBookings_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/GetBookings", + FullMethod: Fleets_GetBookings_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).GetBookings(ctx, req.(*GetBookingsRequest)) @@ -352,7 +390,7 @@ func _Fleets_GetDriverBookings_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/GetDriverBookings", + FullMethod: Fleets_GetDriverBookings_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).GetDriverBookings(ctx, req.(*GetDriverBookingsRequest)) @@ -370,7 +408,7 @@ func _Fleets_UpdateBooking_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/UpdateBooking", + FullMethod: Fleets_UpdateBooking_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).UpdateBooking(ctx, req.(*UpdateBookingRequest)) @@ -388,7 +426,7 @@ func _Fleets_DeleteBooking_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/DeleteBooking", + FullMethod: Fleets_DeleteBooking_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).DeleteBooking(ctx, req.(*DeleteBookingRequest)) @@ -406,7 +444,7 @@ func _Fleets_FindVehicle_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/Fleets/FindVehicle", + FullMethod: Fleets_FindVehicle_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FleetsServer).FindVehicle(ctx, req.(*FindVehicleRequest)) diff --git a/grpcapi/grpcapi.go b/grpcapi/grpcapi.go index 2f3ec91..52dd697 100644 --- a/grpcapi/grpcapi.go +++ b/grpcapi/grpcapi.go @@ -57,6 +57,7 @@ func (s FleetsServerImpl) GetVehicles(ctx context.Context, req *GetVehiclesReque filter := storage.VehicleFilters{ Types: req.Types, Administrators: req.Administrators, + IncludeDeleted: req.IncludeDeleted, } if req.AvailabilityFrom.IsValid() { filter.AvailableFrom = req.AvailabilityFrom.AsTime() @@ -124,9 +125,14 @@ func (s FleetsServerImpl) UpdateBooking(ctx context.Context, req *UpdateBookingR return &UpdateBookingResponse{Booking: response}, nil } func (s FleetsServerImpl) DeleteBooking(ctx context.Context, req *DeleteBookingRequest) (*DeleteBookingResponse, error) { - if err := s.handler.DeleteBooking(req.Id); err != nil { + var deletionMetadata map[string]any + if req.DeletionMetadata != nil { + deletionMetadata = req.DeletionMetadata.AsMap() + } + + if err := s.handler.DeleteBooking(req.Id, deletionMetadata); err != nil { fmt.Println(err) - return nil, status.Errorf(codes.Internal, "issue while retrieving booking : %v", err) + return nil, status.Errorf(codes.Internal, "issue while deleting booking : %v", err) } return &DeleteBookingResponse{ diff --git a/grpcapi/vehicles.pb.go b/grpcapi/vehicles.pb.go index 1233d68..03d3de7 100644 --- a/grpcapi/vehicles.pb.go +++ b/grpcapi/vehicles.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 -// protoc v3.19.4 +// protoc-gen-go v1.36.7 +// protoc v6.31.1 // source: vehicles.proto package grpcapi @@ -13,6 +13,7 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -23,25 +24,22 @@ const ( ) type Vehicle struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` - Administrators []string `protobuf:"bytes,4,rep,name=administrators,proto3" json:"administrators,omitempty"` - Data *structpb.Struct `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` - Bookings []*Booking `protobuf:"bytes,6,rep,name=bookings,proto3" json:"bookings,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Administrators []string `protobuf:"bytes,4,rep,name=administrators,proto3" json:"administrators,omitempty"` + Data *structpb.Struct `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` + Bookings []*Booking `protobuf:"bytes,6,rep,name=bookings,proto3" json:"bookings,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Vehicle) Reset() { *x = Vehicle{} - if protoimpl.UnsafeEnabled { - mi := &file_vehicles_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vehicles_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Vehicle) String() string { @@ -52,7 +50,7 @@ func (*Vehicle) ProtoMessage() {} func (x *Vehicle) ProtoReflect() protoreflect.Message { mi := &file_vehicles_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -110,10 +108,7 @@ func (x *Vehicle) GetBookings() []*Booking { } type Booking struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Vehicleid string `protobuf:"bytes,2,opt,name=vehicleid,proto3" json:"vehicleid,omitempty"` Driver string `protobuf:"bytes,3,opt,name=driver,proto3" json:"driver,omitempty"` @@ -123,15 +118,16 @@ type Booking struct { Unavailableto *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=unavailableto,proto3" json:"unavailableto,omitempty"` Data *structpb.Struct `protobuf:"bytes,8,opt,name=data,proto3" json:"data,omitempty"` Vehicle *Vehicle `protobuf:"bytes,9,opt,name=vehicle,proto3" json:"vehicle,omitempty"` + Deleted bool `protobuf:"varint,10,opt,name=deleted,proto3" json:"deleted,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Booking) Reset() { *x = Booking{} - if protoimpl.UnsafeEnabled { - mi := &file_vehicles_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vehicles_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Booking) String() string { @@ -142,7 +138,7 @@ func (*Booking) ProtoMessage() {} func (x *Booking) ProtoReflect() protoreflect.Message { mi := &file_vehicles_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -220,72 +216,52 @@ func (x *Booking) GetVehicle() *Vehicle { return nil } +func (x *Booking) GetDeleted() bool { + if x != nil { + return x.Deleted + } + return false +} + var File_vehicles_proto protoreflect.FileDescriptor -var file_vehicles_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xc6, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x24, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x08, - 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x98, 0x03, 0x0a, 0x07, 0x42, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, - 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x64, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x75, 0x6e, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x66, 0x72, 0x6f, 0x6d, - 0x12, 0x40, 0x0a, 0x0d, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x74, - 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x74, 0x6f, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x22, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x08, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, - 0x63, 0x6c, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, - 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, - 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_vehicles_proto_rawDesc = "" + + "\n" + + "\x0evehicles.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc6\x01\n" + + "\aVehicle\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n" + + "\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x12\n" + + "\x04type\x18\x03 \x01(\tR\x04type\x12&\n" + + "\x0eadministrators\x18\x04 \x03(\tR\x0eadministrators\x12+\n" + + "\x04data\x18\x05 \x01(\v2\x17.google.protobuf.StructR\x04data\x12$\n" + + "\bbookings\x18\x06 \x03(\v2\b.BookingR\bbookings\"\xb2\x03\n" + + "\aBooking\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n" + + "\tvehicleid\x18\x02 \x01(\tR\tvehicleid\x12\x16\n" + + "\x06driver\x18\x03 \x01(\tR\x06driver\x128\n" + + "\tstartdate\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tstartdate\x124\n" + + "\aenddate\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\aenddate\x12D\n" + + "\x0funavailablefrom\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\x0funavailablefrom\x12@\n" + + "\runavailableto\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\runavailableto\x12+\n" + + "\x04data\x18\b \x01(\v2\x17.google.protobuf.StructR\x04data\x12\"\n" + + "\avehicle\x18\t \x01(\v2\b.VehicleR\avehicle\x12\x18\n" + + "\adeleted\x18\n" + + " \x01(\bR\adeletedB.Z,git.coopgo.io/coopgo-platform/fleets/grpcapib\x06proto3" var ( file_vehicles_proto_rawDescOnce sync.Once - file_vehicles_proto_rawDescData = file_vehicles_proto_rawDesc + file_vehicles_proto_rawDescData []byte ) func file_vehicles_proto_rawDescGZIP() []byte { file_vehicles_proto_rawDescOnce.Do(func() { - file_vehicles_proto_rawDescData = protoimpl.X.CompressGZIP(file_vehicles_proto_rawDescData) + file_vehicles_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_vehicles_proto_rawDesc), len(file_vehicles_proto_rawDesc))) }) return file_vehicles_proto_rawDescData } var file_vehicles_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_vehicles_proto_goTypes = []interface{}{ +var file_vehicles_proto_goTypes = []any{ (*Vehicle)(nil), // 0: Vehicle (*Booking)(nil), // 1: Booking (*structpb.Struct)(nil), // 2: google.protobuf.Struct @@ -312,37 +288,11 @@ func file_vehicles_proto_init() { if File_vehicles_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vehicles_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Vehicle); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vehicles_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Booking); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_vehicles_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_vehicles_proto_rawDesc), len(file_vehicles_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -353,7 +303,6 @@ func file_vehicles_proto_init() { MessageInfos: file_vehicles_proto_msgTypes, }.Build() File_vehicles_proto = out.File - file_vehicles_proto_rawDesc = nil file_vehicles_proto_goTypes = nil file_vehicles_proto_depIdxs = nil } diff --git a/grpcapi/vehicles.proto b/grpcapi/vehicles.proto index 85053a7..ba5c1e0 100644 --- a/grpcapi/vehicles.proto +++ b/grpcapi/vehicles.proto @@ -25,4 +25,5 @@ message Booking { google.protobuf.Struct data = 8; Vehicle vehicle = 9; -} \ No newline at end of file + bool deleted = 10; +} diff --git a/handlers/bookings.go b/handlers/bookings.go index 7b741ba..b6cf715 100644 --- a/handlers/bookings.go +++ b/handlers/bookings.go @@ -1,6 +1,8 @@ package handlers import ( + "time" + "git.coopgo.io/coopgo-platform/fleets/storage" "github.com/google/uuid" ) @@ -24,23 +26,15 @@ func (h FleetsHandler) GetBooking(id string) (booking *storage.Booking, err erro return nil, err } - // if booking.Deleted { - // return nil, errors.New("booking was deleted") - // } - vehicle, err := h.storage.GetVehicle(booking.Vehicleid) if err != nil { return nil, err } - if err != nil { - return nil, err - } booking.Vehicle = *vehicle return } func (h FleetsHandler) UpdateBooking(booking storage.Booking) (*storage.Booking, error) { - // Store the account if err := h.storage.UpdateBooking(booking); err != nil { return nil, err @@ -49,8 +43,33 @@ func (h FleetsHandler) UpdateBooking(booking storage.Booking) (*storage.Booking, return &booking, nil } -func (h FleetsHandler) DeleteBooking(id string) error { - return h.storage.DeleteBooking(id) +func (h FleetsHandler) DeleteBooking(id string, deletionMetadata map[string]any) error { + // Get the existing booking + booking, err := h.storage.GetBooking(id) + if err != nil { + return err + } + + // Mark as deleted instead of hard delete + booking.Deleted = true + + // Add deletion metadata to data + if booking.Data == nil { + booking.Data = make(map[string]any) + } + + // Add deletion timestamp + booking.Data["deleted_at"] = time.Now().Format(time.RFC3339) + + // Merge provided deletion metadata + if deletionMetadata != nil { + for key, value := range deletionMetadata { + booking.Data[key] = value + } + } + + // Update the booking instead of deleting + return h.storage.UpdateBooking(*booking) } func (h FleetsHandler) GetBookings() ([]storage.Booking, error) { diff --git a/handlers/vehicles.go b/handlers/vehicles.go index f063432..8c725fe 100644 --- a/handlers/vehicles.go +++ b/handlers/vehicles.go @@ -1,6 +1,7 @@ package handlers import ( + "slices" "time" // "Documents/go_projet/go/pkg/mod/git.coopgo.io/coopgo-platform/fleets@v0.0.0-20230310144446-feb935f8bf4e/storage" @@ -41,22 +42,40 @@ func (h FleetsHandler) GetVehicle(id string) (vehicle *storage.Vehicle, err erro func (h FleetsHandler) GetVehicles(namespaces []string, filters storage.VehicleFilters) ([]storage.Vehicle, error) { vehicles, err := h.storage.GetVehicles(namespaces) - newvehicles := []storage.Vehicle{} - for _, v := range vehicles { - - bookings, err := h.storage.GetBookingsForVehicle(v.ID) - if err != nil { - return nil, err - } - v.Bookings = bookings - - if !v.MatchesFilters(filters) { - continue - } - - newvehicles = append(newvehicles, v) + if err != nil { + return nil, err } - return newvehicles, err + + // Filter vehicles and bookings using slices.Collect + return slices.Collect(func(yield func(storage.Vehicle) bool) { + for _, v := range vehicles { + bookings, err := h.storage.GetBookingsForVehicle(v.ID) + if err != nil { + continue // Skip vehicles with booking errors + } + + // Filter deleted bookings unless specifically requested + if !filters.IncludeDeleted { + v.Bookings = slices.Collect(func(yieldBooking func(storage.Booking) bool) { + for _, booking := range bookings { + if !booking.Deleted { + if !yieldBooking(booking) { + return + } + } + } + }) + } else { + v.Bookings = bookings + } + + if v.MatchesFilters(filters) { + if !yield(v) { + return + } + } + } + }), nil } /////////////////update/////////////// diff --git a/storage/vehicles.go b/storage/vehicles.go index 0b8b8a7..073e050 100644 --- a/storage/vehicles.go +++ b/storage/vehicles.go @@ -21,6 +21,7 @@ type VehicleFilters struct { Administrators []string AvailableFrom time.Time AvailableTo time.Time + IncludeDeleted bool } func (v Vehicle) Free(start time.Time, end time.Time) bool {