// Package api provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.6.0 DO NOT EDIT. package api import ( "fmt" "net/http" "github.com/go-chi/chi/v5" "github.com/oapi-codegen/runtime" openapi_types "github.com/oapi-codegen/runtime/types" ) // Defines values for DriverStatusUpdateStatus. const ( DriverStatusUpdateStatusAvailable DriverStatusUpdateStatus = "available" DriverStatusUpdateStatusOffDuty DriverStatusUpdateStatus = "off_duty" DriverStatusUpdateStatusOnRoute DriverStatusUpdateStatus = "on_route" ) // Valid indicates whether the value is a known member of the DriverStatusUpdateStatus enum. func (e DriverStatusUpdateStatus) Valid() bool { switch e { case DriverStatusUpdateStatusAvailable: return true case DriverStatusUpdateStatusOffDuty: return true case DriverStatusUpdateStatusOnRoute: return true default: return false } } // Defines values for DriverUpdateStatus. const ( DriverUpdateStatusAvailable DriverUpdateStatus = "available" DriverUpdateStatusOffDuty DriverUpdateStatus = "off_duty" DriverUpdateStatusOnRoute DriverUpdateStatus = "on_route" ) // Valid indicates whether the value is a known member of the DriverUpdateStatus enum. func (e DriverUpdateStatus) Valid() bool { switch e { case DriverUpdateStatusAvailable: return true case DriverUpdateStatusOffDuty: return true case DriverUpdateStatusOnRoute: return true default: return false } } // Defines values for OrderStatusUpdateStatus. const ( OrderStatusUpdateStatusAssigned OrderStatusUpdateStatus = "assigned" OrderStatusUpdateStatusCancelled OrderStatusUpdateStatus = "cancelled" OrderStatusUpdateStatusDelivered OrderStatusUpdateStatus = "delivered" OrderStatusUpdateStatusInTransit OrderStatusUpdateStatus = "in_transit" ) // Valid indicates whether the value is a known member of the OrderStatusUpdateStatus enum. func (e OrderStatusUpdateStatus) Valid() bool { switch e { case OrderStatusUpdateStatusAssigned: return true case OrderStatusUpdateStatusCancelled: return true case OrderStatusUpdateStatusDelivered: return true case OrderStatusUpdateStatusInTransit: return true default: return false } } // Defines values for VehicleUpdateStatus. const ( VehicleUpdateStatusAvailable VehicleUpdateStatus = "available" VehicleUpdateStatusInTransit VehicleUpdateStatus = "in_transit" VehicleUpdateStatusMaintenance VehicleUpdateStatus = "maintenance" ) // Valid indicates whether the value is a known member of the VehicleUpdateStatus enum. func (e VehicleUpdateStatus) Valid() bool { switch e { case VehicleUpdateStatusAvailable: return true case VehicleUpdateStatusInTransit: return true case VehicleUpdateStatusMaintenance: return true default: return false } } // Defines values for WarehouseUpdateStatus. const ( Active WarehouseUpdateStatus = "active" Inactive WarehouseUpdateStatus = "inactive" ) // Valid indicates whether the value is a known member of the WarehouseUpdateStatus enum. func (e WarehouseUpdateStatus) Valid() bool { switch e { case Active: return true case Inactive: return true default: return false } } // Defines values for ListDriversParamsStatus. const ( Available ListDriversParamsStatus = "available" OffDuty ListDriversParamsStatus = "off_duty" OnRoute ListDriversParamsStatus = "on_route" ) // Valid indicates whether the value is a known member of the ListDriversParamsStatus enum. func (e ListDriversParamsStatus) Valid() bool { switch e { case Available: return true case OffDuty: return true case OnRoute: return true default: return false } } // Defines values for ListOrdersParamsStatus. const ( ListOrdersParamsStatusAssigned ListOrdersParamsStatus = "assigned" ListOrdersParamsStatusCancelled ListOrdersParamsStatus = "cancelled" ListOrdersParamsStatusDelivered ListOrdersParamsStatus = "delivered" ListOrdersParamsStatusInTransit ListOrdersParamsStatus = "in_transit" ListOrdersParamsStatusPending ListOrdersParamsStatus = "pending" ) // Valid indicates whether the value is a known member of the ListOrdersParamsStatus enum. func (e ListOrdersParamsStatus) Valid() bool { switch e { case ListOrdersParamsStatusAssigned: return true case ListOrdersParamsStatusCancelled: return true case ListOrdersParamsStatusDelivered: return true case ListOrdersParamsStatusInTransit: return true case ListOrdersParamsStatusPending: return true default: return false } } // Defines values for GetOrdersReportParamsStatus. const ( GetOrdersReportParamsStatusAssigned GetOrdersReportParamsStatus = "assigned" GetOrdersReportParamsStatusCancelled GetOrdersReportParamsStatus = "cancelled" GetOrdersReportParamsStatusDelivered GetOrdersReportParamsStatus = "delivered" GetOrdersReportParamsStatusInTransit GetOrdersReportParamsStatus = "in_transit" GetOrdersReportParamsStatusPending GetOrdersReportParamsStatus = "pending" ) // Valid indicates whether the value is a known member of the GetOrdersReportParamsStatus enum. func (e GetOrdersReportParamsStatus) Valid() bool { switch e { case GetOrdersReportParamsStatusAssigned: return true case GetOrdersReportParamsStatusCancelled: return true case GetOrdersReportParamsStatusDelivered: return true case GetOrdersReportParamsStatusInTransit: return true case GetOrdersReportParamsStatusPending: return true default: return false } } // ApiResponse defines model for ApiResponse. type ApiResponse struct { Data *map[string]interface{} `json:"data,omitempty"` RequestID *string `json:"requestID,omitempty"` Status *int `json:"status,omitempty"` Success *bool `json:"success,omitempty"` } // DriverCreate defines model for DriverCreate. type DriverCreate struct { Email openapi_types.Email `json:"email"` FullName string `json:"fullName"` LicenseExpiry openapi_types.Date `json:"licenseExpiry"` LicenseNumber string `json:"licenseNumber"` Password string `json:"password"` VehicleId *openapi_types.UUID `json:"vehicleId,omitempty"` } // DriverStatusUpdate defines model for DriverStatusUpdate. type DriverStatusUpdate struct { Status DriverStatusUpdateStatus `json:"status"` } // DriverStatusUpdateStatus defines model for DriverStatusUpdate.Status. type DriverStatusUpdateStatus string // DriverUpdate defines model for DriverUpdate. type DriverUpdate struct { LicenseExpiry *openapi_types.Date `json:"licenseExpiry,omitempty"` LicenseNumber *string `json:"licenseNumber,omitempty"` Status *DriverUpdateStatus `json:"status,omitempty"` VehicleId *openapi_types.UUID `json:"vehicleId,omitempty"` } // DriverUpdateStatus defines model for DriverUpdate.Status. type DriverUpdateStatus string // ErrorResponse defines model for ErrorResponse. type ErrorResponse struct { Message *string `json:"message,omitempty"` RequestID *string `json:"requestID,omitempty"` Status *int `json:"status,omitempty"` } // LoginRequest defines model for LoginRequest. type LoginRequest struct { Email openapi_types.Email `json:"email"` Password string `json:"password"` } // ManagerCreate defines model for ManagerCreate. type ManagerCreate struct { Email openapi_types.Email `json:"email"` FullName string `json:"fullName"` Password string `json:"password"` WarehouseId *openapi_types.UUID `json:"warehouseId,omitempty"` } // OrderCreate defines model for OrderCreate. type OrderCreate struct { CargoDescription *string `json:"cargoDescription,omitempty"` DestinationAddress string `json:"destinationAddress"` OriginAddress *string `json:"originAddress,omitempty"` OriginWarehouseId *openapi_types.UUID `json:"originWarehouseId,omitempty"` VolumeM3 *float32 `json:"volumeM3,omitempty"` WeightKg *float32 `json:"weightKg,omitempty"` } // OrderStatusUpdate defines model for OrderStatusUpdate. type OrderStatusUpdate struct { DriverId *openapi_types.UUID `json:"driverId,omitempty"` Status OrderStatusUpdateStatus `json:"status"` } // OrderStatusUpdateStatus defines model for OrderStatusUpdate.Status. type OrderStatusUpdateStatus string // RegisterRequest defines model for RegisterRequest. type RegisterRequest struct { Email openapi_types.Email `json:"email"` FullName string `json:"fullName"` Password string `json:"password"` } // UserDeleteRequest defines model for UserDeleteRequest. type UserDeleteRequest struct { Password string `json:"password"` } // UserUpdate defines model for UserUpdate. type UserUpdate struct { AvatarUrl *string `json:"avatarUrl,omitempty"` CurrentPassword *string `json:"currentPassword,omitempty"` FullName *string `json:"fullName,omitempty"` Password *string `json:"password,omitempty"` } // VehicleCreate defines model for VehicleCreate. type VehicleCreate struct { Brand *string `json:"brand,omitempty"` CapacityKg *float32 `json:"capacityKg,omitempty"` CapacityM3 *float32 `json:"capacityM3,omitempty"` Model *string `json:"model,omitempty"` PlateNumber string `json:"plateNumber"` Year *int `json:"year,omitempty"` } // VehicleUpdate defines model for VehicleUpdate. type VehicleUpdate struct { Brand *string `json:"brand,omitempty"` CapacityKg *float32 `json:"capacityKg,omitempty"` CapacityM3 *float32 `json:"capacityM3,omitempty"` Model *string `json:"model,omitempty"` Status *VehicleUpdateStatus `json:"status,omitempty"` Year *int `json:"year,omitempty"` } // VehicleUpdateStatus defines model for VehicleUpdate.Status. type VehicleUpdateStatus string // WarehouseCreate defines model for WarehouseCreate. type WarehouseCreate struct { // Address Улица и номер дома Address string `json:"address"` // City Город — используется вместе с address для геокодинга City string `json:"city"` Name string `json:"name"` } // WarehouseUpdate defines model for WarehouseUpdate. type WarehouseUpdate struct { Address *string `json:"address,omitempty"` City *string `json:"city,omitempty"` Latitude *float32 `json:"latitude,omitempty"` Longitude *float32 `json:"longitude,omitempty"` Name *string `json:"name,omitempty"` Status *WarehouseUpdateStatus `json:"status,omitempty"` } // WarehouseUpdateStatus defines model for WarehouseUpdate.Status. type WarehouseUpdateStatus string // ListDriversParams defines parameters for ListDrivers. type ListDriversParams struct { Status *ListDriversParamsStatus `form:"status,omitempty" json:"status,omitempty"` } // ListDriversParamsStatus defines parameters for ListDrivers. type ListDriversParamsStatus string // ListNotificationsParams defines parameters for ListNotifications. type ListNotificationsParams struct { UnreadOnly *bool `form:"unreadOnly,omitempty" json:"unreadOnly,omitempty"` } // ListOrdersParams defines parameters for ListOrders. type ListOrdersParams struct { Status *ListOrdersParamsStatus `form:"status,omitempty" json:"status,omitempty"` DriverId *openapi_types.UUID `form:"driverId,omitempty" json:"driverId,omitempty"` } // ListOrdersParamsStatus defines parameters for ListOrders. type ListOrdersParamsStatus string // GetOrdersReportParams defines parameters for GetOrdersReport. type GetOrdersReportParams struct { From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"` To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"` Status *GetOrdersReportParamsStatus `form:"status,omitempty" json:"status,omitempty"` DriverId *openapi_types.UUID `form:"driverId,omitempty" json:"driverId,omitempty"` WarehouseId *openapi_types.UUID `form:"warehouseId,omitempty" json:"warehouseId,omitempty"` } // GetOrdersReportParamsStatus defines parameters for GetOrdersReport. type GetOrdersReportParamsStatus string // AuthLoginJSONRequestBody defines body for AuthLogin for application/json ContentType. type AuthLoginJSONRequestBody = LoginRequest // AuthRegisterJSONRequestBody defines body for AuthRegister for application/json ContentType. type AuthRegisterJSONRequestBody = RegisterRequest // CreateDriverJSONRequestBody defines body for CreateDriver for application/json ContentType. type CreateDriverJSONRequestBody = DriverCreate // UpdateMyDriverStatusJSONRequestBody defines body for UpdateMyDriverStatus for application/json ContentType. type UpdateMyDriverStatusJSONRequestBody = DriverStatusUpdate // UpdateDriverJSONRequestBody defines body for UpdateDriver for application/json ContentType. type UpdateDriverJSONRequestBody = DriverUpdate // CreateManagerJSONRequestBody defines body for CreateManager for application/json ContentType. type CreateManagerJSONRequestBody = ManagerCreate // DeleteMeJSONRequestBody defines body for DeleteMe for application/json ContentType. type DeleteMeJSONRequestBody = UserDeleteRequest // UpdateMeJSONRequestBody defines body for UpdateMe for application/json ContentType. type UpdateMeJSONRequestBody = UserUpdate // CreateOrderJSONRequestBody defines body for CreateOrder for application/json ContentType. type CreateOrderJSONRequestBody = OrderCreate // UpdateOrderStatusJSONRequestBody defines body for UpdateOrderStatus for application/json ContentType. type UpdateOrderStatusJSONRequestBody = OrderStatusUpdate // CreateVehicleJSONRequestBody defines body for CreateVehicle for application/json ContentType. type CreateVehicleJSONRequestBody = VehicleCreate // UpdateVehicleJSONRequestBody defines body for UpdateVehicle for application/json ContentType. type UpdateVehicleJSONRequestBody = VehicleUpdate // CreateWarehouseJSONRequestBody defines body for CreateWarehouse for application/json ContentType. type CreateWarehouseJSONRequestBody = WarehouseCreate // UpdateWarehouseJSONRequestBody defines body for UpdateWarehouse for application/json ContentType. type UpdateWarehouseJSONRequestBody = WarehouseUpdate // ServerInterface represents all server handlers. type ServerInterface interface { // Авторизация // (POST /auth/login) AuthLogin(w http.ResponseWriter, r *http.Request) // Выход из системы // (POST /auth/logout) AuthLogout(w http.ResponseWriter, r *http.Request) // Обновление access-токена // (POST /auth/refresh) AuthRefresh(w http.ResponseWriter, r *http.Request) // Регистрация клиента // (POST /auth/register) AuthRegister(w http.ResponseWriter, r *http.Request) // Список водителей // (GET /drivers) ListDrivers(w http.ResponseWriter, r *http.Request, params ListDriversParams) // Создать водителя // (POST /drivers) CreateDriver(w http.ResponseWriter, r *http.Request) // Водитель меняет свой статус // (PATCH /drivers/me/status) UpdateMyDriverStatus(w http.ResponseWriter, r *http.Request) // Удалить водителя // (DELETE /drivers/{slug}) DeleteDriver(w http.ResponseWriter, r *http.Request, slug string) // Получить водителя по slug // (GET /drivers/{slug}) GetDriver(w http.ResponseWriter, r *http.Request, slug string) // Обновить данные водителя // (PUT /drivers/{slug}) UpdateDriver(w http.ResponseWriter, r *http.Request, slug string) // Список менеджеров // (GET /managers) ListManagers(w http.ResponseWriter, r *http.Request) // Создать менеджера // (POST /managers) CreateManager(w http.ResponseWriter, r *http.Request) // Удалить менеджера // (DELETE /managers/{slug}) DeleteManager(w http.ResponseWriter, r *http.Request, slug string) // Получить менеджера по slug // (GET /managers/{slug}) GetManager(w http.ResponseWriter, r *http.Request, slug string) // Удалить аккаунт // (DELETE /me) DeleteMe(w http.ResponseWriter, r *http.Request) // Текущий пользователь // (GET /me) GetMe(w http.ResponseWriter, r *http.Request) // Обновить профиль // (PATCH /me) UpdateMe(w http.ResponseWriter, r *http.Request) // Поездки текущего водителя // (GET /me/trips) GetMyTrips(w http.ResponseWriter, r *http.Request) // Список уведомлений текущего пользователя // (GET /notifications) ListNotifications(w http.ResponseWriter, r *http.Request, params ListNotificationsParams) // Отметить уведомление как прочитанное // (PATCH /notifications/{id}/read) MarkNotificationRead(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Список заявок // (GET /orders) ListOrders(w http.ResponseWriter, r *http.Request, params ListOrdersParams) // Создать заявку // (POST /orders) CreateOrder(w http.ResponseWriter, r *http.Request) // Отменить заявку // (DELETE /orders/{id}) CancelOrder(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Получить заявку // (GET /orders/{id}) GetOrder(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Получить маршрут заявки // (GET /orders/{id}/route) GetRoute(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // WebSocket трекинг маршрута // (GET /orders/{id}/route/ws) RouteWebSocket(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Обновить статус заявки // (PATCH /orders/{id}/status) UpdateOrderStatus(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Дашборд менеджмента // (GET /reports/dashboard) GetDashboard(w http.ResponseWriter, r *http.Request) // Отчёт по заявкам // (GET /reports/orders) GetOrdersReport(w http.ResponseWriter, r *http.Request, params GetOrdersReportParams) // Список транспортных средств // (GET /vehicles) ListVehicles(w http.ResponseWriter, r *http.Request) // Добавить ТС // (POST /vehicles) CreateVehicle(w http.ResponseWriter, r *http.Request) // Удалить ТС // (DELETE /vehicles/{slug}) DeleteVehicle(w http.ResponseWriter, r *http.Request, slug string) // Получить ТС по slug // (GET /vehicles/{slug}) GetVehicle(w http.ResponseWriter, r *http.Request, slug string) // Обновить ТС // (PUT /vehicles/{slug}) UpdateVehicle(w http.ResponseWriter, r *http.Request, slug string) // Список складов // (GET /warehouses) ListWarehouses(w http.ResponseWriter, r *http.Request) // Создать склад // (POST /warehouses) CreateWarehouse(w http.ResponseWriter, r *http.Request) // Удалить склад // (DELETE /warehouses/{slug}) DeleteWarehouse(w http.ResponseWriter, r *http.Request, slug string) // Получить склад по slug // (GET /warehouses/{slug}) GetWarehouse(w http.ResponseWriter, r *http.Request, slug string) // Обновить склад // (PUT /warehouses/{slug}) UpdateWarehouse(w http.ResponseWriter, r *http.Request, slug string) } // Unimplemented server implementation that returns http.StatusNotImplemented for each endpoint. type Unimplemented struct{} // Авторизация // (POST /auth/login) func (_ Unimplemented) AuthLogin(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Выход из системы // (POST /auth/logout) func (_ Unimplemented) AuthLogout(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Обновление access-токена // (POST /auth/refresh) func (_ Unimplemented) AuthRefresh(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Регистрация клиента // (POST /auth/register) func (_ Unimplemented) AuthRegister(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Список водителей // (GET /drivers) func (_ Unimplemented) ListDrivers(w http.ResponseWriter, r *http.Request, params ListDriversParams) { w.WriteHeader(http.StatusNotImplemented) } // Создать водителя // (POST /drivers) func (_ Unimplemented) CreateDriver(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Водитель меняет свой статус // (PATCH /drivers/me/status) func (_ Unimplemented) UpdateMyDriverStatus(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Удалить водителя // (DELETE /drivers/{slug}) func (_ Unimplemented) DeleteDriver(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Получить водителя по slug // (GET /drivers/{slug}) func (_ Unimplemented) GetDriver(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Обновить данные водителя // (PUT /drivers/{slug}) func (_ Unimplemented) UpdateDriver(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Список менеджеров // (GET /managers) func (_ Unimplemented) ListManagers(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Создать менеджера // (POST /managers) func (_ Unimplemented) CreateManager(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Удалить менеджера // (DELETE /managers/{slug}) func (_ Unimplemented) DeleteManager(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Получить менеджера по slug // (GET /managers/{slug}) func (_ Unimplemented) GetManager(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Удалить аккаунт // (DELETE /me) func (_ Unimplemented) DeleteMe(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Текущий пользователь // (GET /me) func (_ Unimplemented) GetMe(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Обновить профиль // (PATCH /me) func (_ Unimplemented) UpdateMe(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Поездки текущего водителя // (GET /me/trips) func (_ Unimplemented) GetMyTrips(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Список уведомлений текущего пользователя // (GET /notifications) func (_ Unimplemented) ListNotifications(w http.ResponseWriter, r *http.Request, params ListNotificationsParams) { w.WriteHeader(http.StatusNotImplemented) } // Отметить уведомление как прочитанное // (PATCH /notifications/{id}/read) func (_ Unimplemented) MarkNotificationRead(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Список заявок // (GET /orders) func (_ Unimplemented) ListOrders(w http.ResponseWriter, r *http.Request, params ListOrdersParams) { w.WriteHeader(http.StatusNotImplemented) } // Создать заявку // (POST /orders) func (_ Unimplemented) CreateOrder(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Отменить заявку // (DELETE /orders/{id}) func (_ Unimplemented) CancelOrder(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Получить заявку // (GET /orders/{id}) func (_ Unimplemented) GetOrder(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Получить маршрут заявки // (GET /orders/{id}/route) func (_ Unimplemented) GetRoute(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // WebSocket трекинг маршрута // (GET /orders/{id}/route/ws) func (_ Unimplemented) RouteWebSocket(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Обновить статус заявки // (PATCH /orders/{id}/status) func (_ Unimplemented) UpdateOrderStatus(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Дашборд менеджмента // (GET /reports/dashboard) func (_ Unimplemented) GetDashboard(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Отчёт по заявкам // (GET /reports/orders) func (_ Unimplemented) GetOrdersReport(w http.ResponseWriter, r *http.Request, params GetOrdersReportParams) { w.WriteHeader(http.StatusNotImplemented) } // Список транспортных средств // (GET /vehicles) func (_ Unimplemented) ListVehicles(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Добавить ТС // (POST /vehicles) func (_ Unimplemented) CreateVehicle(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Удалить ТС // (DELETE /vehicles/{slug}) func (_ Unimplemented) DeleteVehicle(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Получить ТС по slug // (GET /vehicles/{slug}) func (_ Unimplemented) GetVehicle(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Обновить ТС // (PUT /vehicles/{slug}) func (_ Unimplemented) UpdateVehicle(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Список складов // (GET /warehouses) func (_ Unimplemented) ListWarehouses(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Создать склад // (POST /warehouses) func (_ Unimplemented) CreateWarehouse(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Удалить склад // (DELETE /warehouses/{slug}) func (_ Unimplemented) DeleteWarehouse(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Получить склад по slug // (GET /warehouses/{slug}) func (_ Unimplemented) GetWarehouse(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // Обновить склад // (PUT /warehouses/{slug}) func (_ Unimplemented) UpdateWarehouse(w http.ResponseWriter, r *http.Request, slug string) { w.WriteHeader(http.StatusNotImplemented) } // ServerInterfaceWrapper converts contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface HandlerMiddlewares []MiddlewareFunc ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) } type MiddlewareFunc func(http.Handler) http.Handler // AuthLogin operation middleware func (siw *ServerInterfaceWrapper) AuthLogin(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.AuthLogin(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // AuthLogout operation middleware func (siw *ServerInterfaceWrapper) AuthLogout(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.AuthLogout(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // AuthRefresh operation middleware func (siw *ServerInterfaceWrapper) AuthRefresh(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.AuthRefresh(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // AuthRegister operation middleware func (siw *ServerInterfaceWrapper) AuthRegister(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.AuthRegister(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListDrivers operation middleware func (siw *ServerInterfaceWrapper) ListDrivers(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListDriversParams // ------------- Optional query parameter "status" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "status", r.URL.Query(), ¶ms.Status, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "status", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListDrivers(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateDriver operation middleware func (siw *ServerInterfaceWrapper) CreateDriver(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateDriver(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateMyDriverStatus operation middleware func (siw *ServerInterfaceWrapper) UpdateMyDriverStatus(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateMyDriverStatus(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeleteDriver operation middleware func (siw *ServerInterfaceWrapper) DeleteDriver(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteDriver(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetDriver operation middleware func (siw *ServerInterfaceWrapper) GetDriver(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetDriver(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateDriver operation middleware func (siw *ServerInterfaceWrapper) UpdateDriver(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateDriver(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListManagers operation middleware func (siw *ServerInterfaceWrapper) ListManagers(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListManagers(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateManager operation middleware func (siw *ServerInterfaceWrapper) CreateManager(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateManager(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeleteManager operation middleware func (siw *ServerInterfaceWrapper) DeleteManager(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteManager(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetManager operation middleware func (siw *ServerInterfaceWrapper) GetManager(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetManager(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeleteMe operation middleware func (siw *ServerInterfaceWrapper) DeleteMe(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteMe(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetMe operation middleware func (siw *ServerInterfaceWrapper) GetMe(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetMe(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateMe operation middleware func (siw *ServerInterfaceWrapper) UpdateMe(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateMe(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetMyTrips operation middleware func (siw *ServerInterfaceWrapper) GetMyTrips(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetMyTrips(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListNotifications operation middleware func (siw *ServerInterfaceWrapper) ListNotifications(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListNotificationsParams // ------------- Optional query parameter "unreadOnly" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "unreadOnly", r.URL.Query(), ¶ms.UnreadOnly, runtime.BindQueryParameterOptions{Type: "boolean", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "unreadOnly", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListNotifications(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // MarkNotificationRead operation middleware func (siw *ServerInterfaceWrapper) MarkNotificationRead(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.MarkNotificationRead(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListOrders operation middleware func (siw *ServerInterfaceWrapper) ListOrders(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListOrdersParams // ------------- Optional query parameter "status" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "status", r.URL.Query(), ¶ms.Status, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "status", Err: err}) return } // ------------- Optional query parameter "driverId" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "driverId", r.URL.Query(), ¶ms.DriverId, runtime.BindQueryParameterOptions{Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "driverId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListOrders(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateOrder operation middleware func (siw *ServerInterfaceWrapper) CreateOrder(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateOrder(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CancelOrder operation middleware func (siw *ServerInterfaceWrapper) CancelOrder(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CancelOrder(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetOrder operation middleware func (siw *ServerInterfaceWrapper) GetOrder(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetOrder(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetRoute operation middleware func (siw *ServerInterfaceWrapper) GetRoute(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetRoute(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // RouteWebSocket operation middleware func (siw *ServerInterfaceWrapper) RouteWebSocket(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.RouteWebSocket(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateOrderStatus operation middleware func (siw *ServerInterfaceWrapper) UpdateOrderStatus(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateOrderStatus(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetDashboard operation middleware func (siw *ServerInterfaceWrapper) GetDashboard(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetDashboard(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetOrdersReport operation middleware func (siw *ServerInterfaceWrapper) GetOrdersReport(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params GetOrdersReportParams // ------------- Optional query parameter "from" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "from", r.URL.Query(), ¶ms.From, runtime.BindQueryParameterOptions{Type: "string", Format: "date"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "from", Err: err}) return } // ------------- Optional query parameter "to" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "to", r.URL.Query(), ¶ms.To, runtime.BindQueryParameterOptions{Type: "string", Format: "date"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "to", Err: err}) return } // ------------- Optional query parameter "status" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "status", r.URL.Query(), ¶ms.Status, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "status", Err: err}) return } // ------------- Optional query parameter "driverId" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "driverId", r.URL.Query(), ¶ms.DriverId, runtime.BindQueryParameterOptions{Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "driverId", Err: err}) return } // ------------- Optional query parameter "warehouseId" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "warehouseId", r.URL.Query(), ¶ms.WarehouseId, runtime.BindQueryParameterOptions{Type: "string", Format: "uuid"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "warehouseId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetOrdersReport(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListVehicles operation middleware func (siw *ServerInterfaceWrapper) ListVehicles(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListVehicles(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateVehicle operation middleware func (siw *ServerInterfaceWrapper) CreateVehicle(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateVehicle(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeleteVehicle operation middleware func (siw *ServerInterfaceWrapper) DeleteVehicle(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteVehicle(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetVehicle operation middleware func (siw *ServerInterfaceWrapper) GetVehicle(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetVehicle(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateVehicle operation middleware func (siw *ServerInterfaceWrapper) UpdateVehicle(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateVehicle(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListWarehouses operation middleware func (siw *ServerInterfaceWrapper) ListWarehouses(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListWarehouses(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateWarehouse operation middleware func (siw *ServerInterfaceWrapper) CreateWarehouse(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateWarehouse(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeleteWarehouse operation middleware func (siw *ServerInterfaceWrapper) DeleteWarehouse(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteWarehouse(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetWarehouse operation middleware func (siw *ServerInterfaceWrapper) GetWarehouse(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetWarehouse(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateWarehouse operation middleware func (siw *ServerInterfaceWrapper) UpdateWarehouse(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "slug" ------------- var slug string err = runtime.BindStyledParameterWithOptions("simple", "slug", chi.URLParam(r, "slug"), &slug, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "slug", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateWarehouse(w, r, slug) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } type UnescapedCookieParamError struct { ParamName string Err error } func (e *UnescapedCookieParamError) Error() string { return fmt.Sprintf("error unescaping cookie parameter '%s'", e.ParamName) } func (e *UnescapedCookieParamError) Unwrap() error { return e.Err } type UnmarshalingParamError struct { ParamName string Err error } func (e *UnmarshalingParamError) Error() string { return fmt.Sprintf("Error unmarshaling parameter %s as JSON: %s", e.ParamName, e.Err.Error()) } func (e *UnmarshalingParamError) Unwrap() error { return e.Err } type RequiredParamError struct { ParamName string } func (e *RequiredParamError) Error() string { return fmt.Sprintf("Query argument %s is required, but not found", e.ParamName) } type RequiredHeaderError struct { ParamName string Err error } func (e *RequiredHeaderError) Error() string { return fmt.Sprintf("Header parameter %s is required, but not found", e.ParamName) } func (e *RequiredHeaderError) Unwrap() error { return e.Err } type InvalidParamFormatError struct { ParamName string Err error } func (e *InvalidParamFormatError) Error() string { return fmt.Sprintf("Invalid format for parameter %s: %s", e.ParamName, e.Err.Error()) } func (e *InvalidParamFormatError) Unwrap() error { return e.Err } type TooManyValuesForParamError struct { ParamName string Count int } func (e *TooManyValuesForParamError) Error() string { return fmt.Sprintf("Expected one value for %s, got %d", e.ParamName, e.Count) } // Handler creates http.Handler with routing matching OpenAPI spec. func Handler(si ServerInterface) http.Handler { return HandlerWithOptions(si, ChiServerOptions{}) } type ChiServerOptions struct { BaseURL string BaseRouter chi.Router Middlewares []MiddlewareFunc ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) } // HandlerFromMux creates http.Handler with routing matching OpenAPI spec based on the provided mux. func HandlerFromMux(si ServerInterface, r chi.Router) http.Handler { return HandlerWithOptions(si, ChiServerOptions{ BaseRouter: r, }) } func HandlerFromMuxWithBaseURL(si ServerInterface, r chi.Router, baseURL string) http.Handler { return HandlerWithOptions(si, ChiServerOptions{ BaseURL: baseURL, BaseRouter: r, }) } // HandlerWithOptions creates http.Handler with additional options func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handler { r := options.BaseRouter if r == nil { r = chi.NewRouter() } if options.ErrorHandlerFunc == nil { options.ErrorHandlerFunc = func(w http.ResponseWriter, r *http.Request, err error) { http.Error(w, err.Error(), http.StatusBadRequest) } } wrapper := ServerInterfaceWrapper{ Handler: si, HandlerMiddlewares: options.Middlewares, ErrorHandlerFunc: options.ErrorHandlerFunc, } r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/auth/login", wrapper.AuthLogin) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/auth/logout", wrapper.AuthLogout) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/auth/refresh", wrapper.AuthRefresh) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/auth/register", wrapper.AuthRegister) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/drivers", wrapper.ListDrivers) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/drivers", wrapper.CreateDriver) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/drivers/me/status", wrapper.UpdateMyDriverStatus) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/drivers/{slug}", wrapper.DeleteDriver) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/drivers/{slug}", wrapper.GetDriver) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/drivers/{slug}", wrapper.UpdateDriver) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/managers", wrapper.ListManagers) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/managers", wrapper.CreateManager) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/managers/{slug}", wrapper.DeleteManager) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/managers/{slug}", wrapper.GetManager) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/me", wrapper.DeleteMe) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/me", wrapper.GetMe) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/me", wrapper.UpdateMe) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/me/trips", wrapper.GetMyTrips) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/notifications", wrapper.ListNotifications) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/notifications/{id}/read", wrapper.MarkNotificationRead) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/orders", wrapper.ListOrders) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/orders", wrapper.CreateOrder) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/orders/{id}", wrapper.CancelOrder) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/orders/{id}", wrapper.GetOrder) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/orders/{id}/route", wrapper.GetRoute) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/orders/{id}/route/ws", wrapper.RouteWebSocket) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/orders/{id}/status", wrapper.UpdateOrderStatus) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/reports/dashboard", wrapper.GetDashboard) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/reports/orders", wrapper.GetOrdersReport) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/vehicles", wrapper.ListVehicles) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/vehicles", wrapper.CreateVehicle) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/vehicles/{slug}", wrapper.DeleteVehicle) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/vehicles/{slug}", wrapper.GetVehicle) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/vehicles/{slug}", wrapper.UpdateVehicle) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/warehouses", wrapper.ListWarehouses) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/warehouses", wrapper.CreateWarehouse) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/warehouses/{slug}", wrapper.DeleteWarehouse) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/warehouses/{slug}", wrapper.GetWarehouse) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/warehouses/{slug}", wrapper.UpdateWarehouse) }) return r }