@fleetbase/fleetops-engine 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +14 -0
- package/.php-cs-fixer.php +29 -0
- package/LICENSE.md +16 -4
- package/README.md +103 -13
- package/composer.json +85 -0
- package/extension.json +10 -0
- package/package.json +3 -3
- package/phpstan.neon.dist +8 -0
- package/phpunit.xml.dist +16 -0
- package/server/config/api.php +765 -0
- package/server/config/cache.stores.php +18 -0
- package/server/config/dompdf.php +242 -0
- package/server/config/fleetops.php +19 -0
- package/server/config/geocoder.php +108 -0
- package/server/data/globe.json +261 -0
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +49 -0
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +62 -0
- package/server/migrations/2023_04_27_053456_create_entities_table.php +67 -0
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +39 -0
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +50 -0
- package/server/migrations/2023_04_27_053456_create_integrated_vendors_table.php +44 -0
- package/server/migrations/2023_04_27_053456_create_issues_table.php +53 -0
- package/server/migrations/2023_04_27_053456_create_orders_table.php +70 -0
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +51 -0
- package/server/migrations/2023_04_27_053456_create_places_table.php +62 -0
- package/server/migrations/2023_04_27_053456_create_positions_table.php +46 -0
- package/server/migrations/2023_04_27_053456_create_proofs_table.php +44 -0
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +46 -0
- package/server/migrations/2023_04_27_053456_create_routes_table.php +40 -0
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +42 -0
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +45 -0
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +61 -0
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +46 -0
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +54 -0
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +84 -0
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +56 -0
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +45 -0
- package/server/migrations/2023_04_27_053456_create_zones_table.php +46 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_companies_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_contacts_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_drivers_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_entities_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleet_drivers_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleets_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fuel_reports_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_integrated_vendors_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_issues_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_orders_table.php +48 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_payloads_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_places_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_positions_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_proofs_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_purchase_rates_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_routes_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_areas_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quote_items_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quotes_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_fees_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_parcel_fees_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rates_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_numbers_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_statuses_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vehicles_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vendors_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_waypoints_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_zones_table.php +34 -0
- package/server/migrations/2023_09_14_074512_update_vehicles_table.php +100 -0
- package/server/migrations/2023_09_14_074619_create_vehicle_devices_table.php +44 -0
- package/server/migrations/2023_09_26_071205_add_online_column_to_vehicles_table.php +32 -0
- package/server/migrations/2023_09_26_083957_create_fleet_vehicles_table.php +45 -0
- package/server/migrations/2023_09_27_023757_add_column_to_fleets_table.php +46 -0
- package/server/migrations/2023_10_05_074811_update_vehicle.php +42 -0
- package/server/resources/views/labels/default.php +165 -0
- package/server/src/Auth/Schemas/FleetOps.php +75 -0
- package/server/src/Casts/MultiPolygon.php +50 -0
- package/server/src/Casts/Point.php +109 -0
- package/server/src/Casts/Polygon.php +46 -0
- package/server/src/Console/Commands/DispatchAdhocOrders.php +137 -0
- package/server/src/Console/Commands/DispatchOrders.php +71 -0
- package/server/src/Console/Commands/TrackOrderDistanceAndTime.php +62 -0
- package/server/src/Events/DriverLocationChanged.php +174 -0
- package/server/src/Events/DriverSimulatedLocationChanged.php +183 -0
- package/server/src/Events/EntityDriverAssigned.php +36 -0
- package/server/src/Events/OrderCanceled.php +15 -0
- package/server/src/Events/OrderCompleted.php +15 -0
- package/server/src/Events/OrderDispatchFailed.php +42 -0
- package/server/src/Events/OrderDispatched.php +15 -0
- package/server/src/Events/OrderDriverAssigned.php +15 -0
- package/server/src/Events/OrderReady.php +15 -0
- package/server/src/Events/OrderStarted.php +15 -0
- package/server/src/Exceptions/IntegratedVendorException.php +18 -0
- package/server/src/Expansions/UserExpansion.php +63 -0
- package/server/src/Exports/ContactExport.php +56 -0
- package/server/src/Exports/DriverExport.php +61 -0
- package/server/src/Exports/FleetExport.php +53 -0
- package/server/src/Exports/PlaceExport.php +55 -0
- package/server/src/Exports/ServiceAreaExport.php +58 -0
- package/server/src/Exports/VehicleExport.php +57 -0
- package/server/src/Exports/VendorExport.php +57 -0
- package/server/src/Http/Controllers/Api/v1/ContactController.php +133 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +691 -0
- package/server/src/Http/Controllers/Api/v1/EntityController.php +230 -0
- package/server/src/Http/Controllers/Api/v1/FleetController.php +146 -0
- package/server/src/Http/Controllers/Api/v1/LabelController.php +63 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +1114 -0
- package/server/src/Http/Controllers/Api/v1/PayloadController.php +195 -0
- package/server/src/Http/Controllers/Api/v1/PlaceController.php +333 -0
- package/server/src/Http/Controllers/Api/v1/PurchaseRateController.php +199 -0
- package/server/src/Http/Controllers/Api/v1/ServiceAreaController.php +133 -0
- package/server/src/Http/Controllers/Api/v1/ServiceQuoteController.php +381 -0
- package/server/src/Http/Controllers/Api/v1/ServiceRateController.php +223 -0
- package/server/src/Http/Controllers/Api/v1/TrackingNumberController.php +146 -0
- package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +138 -0
- package/server/src/Http/Controllers/Api/v1/VehicleController.php +191 -0
- package/server/src/Http/Controllers/Api/v1/VendorController.php +159 -0
- package/server/src/Http/Controllers/Api/v1/ZoneController.php +146 -0
- package/server/src/Http/Controllers/FleetOpsController.php +13 -0
- package/server/src/Http/Controllers/Internal/v1/ContactController.php +69 -0
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +261 -0
- package/server/src/Http/Controllers/Internal/v1/EntityController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/FleetController.php +152 -0
- package/server/src/Http/Controllers/Internal/v1/FleetOpsLookupController.php +80 -0
- package/server/src/Http/Controllers/Internal/v1/FuelReportController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/GeocoderController.php +96 -0
- package/server/src/Http/Controllers/Internal/v1/IntegratedVendorController.php +63 -0
- package/server/src/Http/Controllers/Internal/v1/IssueController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/LiveController.php +127 -0
- package/server/src/Http/Controllers/Internal/v1/MetricsController.php +75 -0
- package/server/src/Http/Controllers/Internal/v1/MorphController.php +77 -0
- package/server/src/Http/Controllers/Internal/v1/OrderConfigController.php +269 -0
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +564 -0
- package/server/src/Http/Controllers/Internal/v1/PayloadController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/PlaceController.php +163 -0
- package/server/src/Http/Controllers/Internal/v1/ProofController.php +139 -0
- package/server/src/Http/Controllers/Internal/v1/PurchaseRateController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/RouteController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/ServiceAreaController.php +32 -0
- package/server/src/Http/Controllers/Internal/v1/ServiceQuoteController.php +345 -0
- package/server/src/Http/Controllers/Internal/v1/ServiceRateController.php +47 -0
- package/server/src/Http/Controllers/Internal/v1/SettingController.php +30 -0
- package/server/src/Http/Controllers/Internal/v1/TrackingNumberController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/TrackingStatusController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/VehicleController.php +65 -0
- package/server/src/Http/Controllers/Internal/v1/VehicleDeviceController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/VendorController.php +120 -0
- package/server/src/Http/Controllers/Internal/v1/ZoneController.php +15 -0
- package/server/src/Http/Filter/ContactFilter.php +86 -0
- package/server/src/Http/Filter/DriverFilter.php +148 -0
- package/server/src/Http/Filter/FleetFilter.php +108 -0
- package/server/src/Http/Filter/IntegratedVendorFilter.php +13 -0
- package/server/src/Http/Filter/OrderFilter.php +242 -0
- package/server/src/Http/Filter/PlaceFilter.php +111 -0
- package/server/src/Http/Filter/ServiceAreaFilter.php +13 -0
- package/server/src/Http/Filter/ServiceQuoteFilter.php +13 -0
- package/server/src/Http/Filter/ServiceRateFilter.php +33 -0
- package/server/src/Http/Filter/TrackingStatusFilter.php +43 -0
- package/server/src/Http/Filter/VehicleFilter.php +91 -0
- package/server/src/Http/Filter/VendorFilter.php +83 -0
- package/server/src/Http/Filter/ZoneFilter.php +13 -0
- package/server/src/Http/Requests/CancelOrderRequest.php +31 -0
- package/server/src/Http/Requests/CreateContactRequest.php +33 -0
- package/server/src/Http/Requests/CreateDriverRequest.php +55 -0
- package/server/src/Http/Requests/CreateEntityRequest.php +43 -0
- package/server/src/Http/Requests/CreateFleetRequest.php +32 -0
- package/server/src/Http/Requests/CreateOrderRequest.php +66 -0
- package/server/src/Http/Requests/CreatePayloadRequest.php +37 -0
- package/server/src/Http/Requests/CreatePlaceRequest.php +38 -0
- package/server/src/Http/Requests/CreatePurchaseRateRequest.php +33 -0
- package/server/src/Http/Requests/CreateServiceAreaRequest.php +35 -0
- package/server/src/Http/Requests/CreateServiceQuoteRequest.php +29 -0
- package/server/src/Http/Requests/CreateServiceRateRequest.php +56 -0
- package/server/src/Http/Requests/CreateTrackingNumberRequest.php +34 -0
- package/server/src/Http/Requests/CreateTrackingStatusRequest.php +42 -0
- package/server/src/Http/Requests/CreateVehicleRequest.php +32 -0
- package/server/src/Http/Requests/CreateVendorRequest.php +35 -0
- package/server/src/Http/Requests/CreateZoneRequest.php +35 -0
- package/server/src/Http/Requests/DecodeTrackingNumberQR.php +30 -0
- package/server/src/Http/Requests/DriverSimulationRequest.php +46 -0
- package/server/src/Http/Requests/Internal/AssignOrderRequest.php +31 -0
- package/server/src/Http/Requests/Internal/CreateDriverRequest.php +42 -0
- package/server/src/Http/Requests/Internal/FleetActionRequest.php +32 -0
- package/server/src/Http/Requests/Internal/UpdateDriverRequest.php +7 -0
- package/server/src/Http/Requests/QueryServiceQuotesRequest.php +41 -0
- package/server/src/Http/Requests/UpdateContactRequest.php +20 -0
- package/server/src/Http/Requests/UpdateDriverRequest.php +7 -0
- package/server/src/Http/Requests/UpdateEntityRequest.php +7 -0
- package/server/src/Http/Requests/UpdateFleetRequest.php +7 -0
- package/server/src/Http/Requests/UpdateOrderRequest.php +7 -0
- package/server/src/Http/Requests/UpdatePayloadRequest.php +7 -0
- package/server/src/Http/Requests/UpdatePlaceRequest.php +7 -0
- package/server/src/Http/Requests/UpdatePurchaseRateRequest.php +7 -0
- package/server/src/Http/Requests/UpdateServiceAreaRequest.php +29 -0
- package/server/src/Http/Requests/UpdateServiceQuoteRequest.php +29 -0
- package/server/src/Http/Requests/UpdateServiceRateRequest.php +29 -0
- package/server/src/Http/Requests/UpdateTrackingNumberRequest.php +7 -0
- package/server/src/Http/Requests/UpdateTrackingStatusRequest.php +32 -0
- package/server/src/Http/Requests/UpdateVehicleRequest.php +7 -0
- package/server/src/Http/Requests/UpdateVendorRequest.php +7 -0
- package/server/src/Http/Requests/UpdateZoneRequest.php +7 -0
- package/server/src/Http/Resources/Internal/v1/IntegratedVendorFacilitator.php +37 -0
- package/server/src/Http/Resources/Internal/v1/Vehicle.php +33 -0
- package/server/src/Http/Resources/Internal/v1/Waypoint.php +34 -0
- package/server/src/Http/Resources/v1/Contact.php +62 -0
- package/server/src/Http/Resources/v1/CurrentJob.php +36 -0
- package/server/src/Http/Resources/v1/DeletedResource.php +61 -0
- package/server/src/Http/Resources/v1/Driver.php +89 -0
- package/server/src/Http/Resources/v1/Entity.php +107 -0
- package/server/src/Http/Resources/v1/Fleet.php +60 -0
- package/server/src/Http/Resources/v1/FuelReport.php +67 -0
- package/server/src/Http/Resources/v1/Order.php +131 -0
- package/server/src/Http/Resources/v1/Payload.php +94 -0
- package/server/src/Http/Resources/v1/Place.php +84 -0
- package/server/src/Http/Resources/v1/Proof.php +36 -0
- package/server/src/Http/Resources/v1/PurchaseRate.php +77 -0
- package/server/src/Http/Resources/v1/ServiceArea.php +55 -0
- package/server/src/Http/Resources/v1/ServiceQuote.php +57 -0
- package/server/src/Http/Resources/v1/ServiceRate.php +94 -0
- package/server/src/Http/Resources/v1/ServiceRateFee.php +58 -0
- package/server/src/Http/Resources/v1/ServiceRateParcelFee.php +48 -0
- package/server/src/Http/Resources/v1/TrackingNumber.php +62 -0
- package/server/src/Http/Resources/v1/TrackingStatus.php +84 -0
- package/server/src/Http/Resources/v1/Vehicle.php +75 -0
- package/server/src/Http/Resources/v1/VehicleDevice.php +44 -0
- package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +72 -0
- package/server/src/Http/Resources/v1/Vendor.php +72 -0
- package/server/src/Http/Resources/v1/Zone.php +60 -0
- package/server/src/Imports/OrdersImport.php +18 -0
- package/server/src/Integrations/Lalamove/Lalamove.php +678 -0
- package/server/src/Integrations/Lalamove/LalamoveDeliveryStop.php +97 -0
- package/server/src/Integrations/Lalamove/LalamoveMarket.php +123 -0
- package/server/src/Integrations/Lalamove/LalamoveServiceType.php +161 -0
- package/server/src/Jobs/SimulateDrivingRoute.php +81 -0
- package/server/src/Jobs/SimulateWaypointReached.php +79 -0
- package/server/src/Listeners/HandleOrderCanceled.php +46 -0
- package/server/src/Listeners/HandleOrderCreated.php +23 -0
- package/server/src/Listeners/HandleOrderDispatchFailed.php +35 -0
- package/server/src/Listeners/HandleOrderDispatched.php +108 -0
- package/server/src/Listeners/HandleOrderDriverAssigned.php +42 -0
- package/server/src/Listeners/HandleOrderReady.php +27 -0
- package/server/src/Listeners/HandleUserRemovedFromCompany.php +31 -0
- package/server/src/Models/Contact.php +239 -0
- package/server/src/Models/Driver.php +543 -0
- package/server/src/Models/Entity.php +416 -0
- package/server/src/Models/Fleet.php +203 -0
- package/server/src/Models/FleetDriver.php +73 -0
- package/server/src/Models/FleetVehicle.php +73 -0
- package/server/src/Models/FuelReport.php +125 -0
- package/server/src/Models/IntegratedVendor.php +219 -0
- package/server/src/Models/Issue.php +111 -0
- package/server/src/Models/Order.php +1132 -0
- package/server/src/Models/Payload.php +699 -0
- package/server/src/Models/Place.php +656 -0
- package/server/src/Models/Position.php +119 -0
- package/server/src/Models/Proof.php +94 -0
- package/server/src/Models/PurchaseRate.php +208 -0
- package/server/src/Models/Route.php +128 -0
- package/server/src/Models/ServiceArea.php +161 -0
- package/server/src/Models/ServiceQuote.php +207 -0
- package/server/src/Models/ServiceQuoteItem.php +46 -0
- package/server/src/Models/ServiceRate.php +953 -0
- package/server/src/Models/ServiceRateFee.php +96 -0
- package/server/src/Models/ServiceRateParcelFee.php +116 -0
- package/server/src/Models/TrackingNumber.php +310 -0
- package/server/src/Models/TrackingStatus.php +177 -0
- package/server/src/Models/Vehicle.php +452 -0
- package/server/src/Models/VehicleDevice.php +79 -0
- package/server/src/Models/Vendor.php +244 -0
- package/server/src/Models/Waypoint.php +226 -0
- package/server/src/Models/Zone.php +95 -0
- package/server/src/Notifications/OrderAssigned.php +140 -0
- package/server/src/Notifications/OrderCanceled.php +129 -0
- package/server/src/Notifications/OrderDispatchFailed.php +81 -0
- package/server/src/Notifications/OrderDispatched.php +173 -0
- package/server/src/Notifications/OrderPing.php +162 -0
- package/server/src/Notifications/OrderSplit.php +56 -0
- package/server/src/Observers/DriverObserver.php +34 -0
- package/server/src/Observers/OrderObserver.php +34 -0
- package/server/src/Observers/PayloadObserver.php +30 -0
- package/server/src/Observers/PlaceObserver.php +26 -0
- package/server/src/Observers/PurchaseRateObserver.php +61 -0
- package/server/src/Observers/ServiceAreaObserver.php +35 -0
- package/server/src/Observers/ServiceRateObserver.php +78 -0
- package/server/src/Observers/TrackingNumberObserver.php +44 -0
- package/server/src/Observers/UserObserver.php +20 -0
- package/server/src/Observers/VehicleObserver.php +66 -0
- package/server/src/Providers/EventServiceProvider.php +30 -0
- package/server/src/Providers/FleetOpsServiceProvider.php +94 -0
- package/server/src/Rules/ResolvablePoint.php +37 -0
- package/server/src/Scopes/DriverScope.php +21 -0
- package/server/src/Support/Algo.php +55 -0
- package/server/src/Support/DistanceMatrix.php +27 -0
- package/server/src/Support/Encoding/Polyline.php +168 -0
- package/server/src/Support/Flow.php +622 -0
- package/server/src/Support/Geocoding.php +216 -0
- package/server/src/Support/IntegratedVendors.php +287 -0
- package/server/src/Support/Metrics.php +305 -0
- package/server/src/Support/OSRM.php +191 -0
- package/server/src/Support/ParsePhone.php +21 -0
- package/server/src/Support/Utils.php +1145 -0
- package/server/src/Traits/HasTrackingNumber.php +185 -0
- package/server/src/routes.php +381 -0
- package/server/tests/Feature.php +5 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Http\Controllers\Api\v1;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Http\Requests\CreateTrackingNumberRequest;
|
|
6
|
+
use Fleetbase\FleetOps\Http\Requests\DecodeTrackingNumberQR;
|
|
7
|
+
use Fleetbase\FleetOps\Http\Resources\v1\DeletedResource;
|
|
8
|
+
use Fleetbase\FleetOps\Http\Resources\v1\TrackingNumber as TrackingNumberResource;
|
|
9
|
+
use Fleetbase\FleetOps\Models\TrackingNumber;
|
|
10
|
+
use Fleetbase\FleetOps\Support\Utils;
|
|
11
|
+
use Fleetbase\Http\Controllers\Controller;
|
|
12
|
+
use Illuminate\Http\Request;
|
|
13
|
+
|
|
14
|
+
class TrackingNumberController extends Controller
|
|
15
|
+
{
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new Fleetbase TrackingNumber resource.
|
|
18
|
+
*
|
|
19
|
+
* @param \Fleetbase\Http\Requests\CreateTrackingNumberRequest $request
|
|
20
|
+
*
|
|
21
|
+
* @return \Fleetbase\Http\Resources\TrackingNumber
|
|
22
|
+
*/
|
|
23
|
+
public function create(CreateTrackingNumberRequest $request)
|
|
24
|
+
{
|
|
25
|
+
// get request input
|
|
26
|
+
$input = $request->only(['region', 'type']);
|
|
27
|
+
|
|
28
|
+
// make sure company is set
|
|
29
|
+
$input['company_uuid'] = session('company');
|
|
30
|
+
|
|
31
|
+
// owner assignment
|
|
32
|
+
if ($request->has('owner')) {
|
|
33
|
+
$owner = Utils::getUuid(
|
|
34
|
+
['orders', 'entities'],
|
|
35
|
+
[
|
|
36
|
+
'public_id' => $request->input('owner'),
|
|
37
|
+
'company_uuid' => session('company'),
|
|
38
|
+
]
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
if (is_array($owner)) {
|
|
42
|
+
$input['owner_uuid'] = Utils::get($owner, 'uuid');
|
|
43
|
+
$input['type'] = Utils::getModelClassName(Utils::get($owner, 'table'));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// create the trackingNumber
|
|
48
|
+
$trackingNumber = TrackingNumber::create($input);
|
|
49
|
+
|
|
50
|
+
// response the driver resource
|
|
51
|
+
return new TrackingNumberResource($trackingNumber);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Query for Fleetbase TrackingNumber resources.
|
|
56
|
+
*
|
|
57
|
+
* @return \Fleetbase\Http\Resources\TrackingNumberCollection
|
|
58
|
+
*/
|
|
59
|
+
public function query(Request $request)
|
|
60
|
+
{
|
|
61
|
+
$results = TrackingNumber::queryWithRequest($request);
|
|
62
|
+
|
|
63
|
+
return TrackingNumberResource::collection($results);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Finds a single Fleetbase TrackingNumber resources.
|
|
68
|
+
*
|
|
69
|
+
* @return \Fleetbase\Http\Resources\TrackingNumberCollection
|
|
70
|
+
*/
|
|
71
|
+
public function find($id)
|
|
72
|
+
{
|
|
73
|
+
// find for the trackingNumber
|
|
74
|
+
try {
|
|
75
|
+
$trackingNumber = TrackingNumber::findTrackingOrFail($id);
|
|
76
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
77
|
+
return response()->json(
|
|
78
|
+
[
|
|
79
|
+
'error' => 'TrackingNumber resource not found.',
|
|
80
|
+
],
|
|
81
|
+
404
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// response the trackingNumber resource
|
|
86
|
+
return new TrackingNumberResource($trackingNumber);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Deletes a Fleetbase TrackingNumber resources.
|
|
91
|
+
*
|
|
92
|
+
* @return \Fleetbase\Http\Resources\TrackingNumberCollection
|
|
93
|
+
*/
|
|
94
|
+
public function delete($id, Request $request)
|
|
95
|
+
{
|
|
96
|
+
// find for the driver
|
|
97
|
+
try {
|
|
98
|
+
$trackingNumber = TrackingNumber::findTrackingOrFail($id);
|
|
99
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
100
|
+
return response()->json(
|
|
101
|
+
[
|
|
102
|
+
'error' => 'TrackingNumber resource not found.',
|
|
103
|
+
],
|
|
104
|
+
404
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// delete the trackingNumber
|
|
109
|
+
$trackingNumber->delete();
|
|
110
|
+
|
|
111
|
+
// response the trackingNumber resource
|
|
112
|
+
return new DeletedResource($trackingNumber);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Take the uuid value of an entity QR code and return the object.
|
|
117
|
+
*
|
|
118
|
+
* @param \Illuminate\Http\Request $request
|
|
119
|
+
*
|
|
120
|
+
* @return \Illuminate\Http\Response
|
|
121
|
+
*/
|
|
122
|
+
public function fromQR(DecodeTrackingNumberQR $request)
|
|
123
|
+
{
|
|
124
|
+
// validate request inputs
|
|
125
|
+
$code = $request->input('code');
|
|
126
|
+
|
|
127
|
+
// get the model of from the code
|
|
128
|
+
$model = Utils::findModel(['entities', 'orders'], ['uuid' => $code]);
|
|
129
|
+
|
|
130
|
+
// if no model response with error
|
|
131
|
+
if (!$model) {
|
|
132
|
+
return response()->json(
|
|
133
|
+
[
|
|
134
|
+
'error' => 'Unable to find QR code value',
|
|
135
|
+
],
|
|
136
|
+
400
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// get the model class name
|
|
141
|
+
$modelType = class_basename($model);
|
|
142
|
+
$resourceNamespace = '\\Fleetbase\\Http\\Resources\\v1\\' . $modelType;
|
|
143
|
+
|
|
144
|
+
return new $resourceNamespace($model);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Http\Controllers\Api\v1;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Http\Requests\CreateTrackingStatusRequest;
|
|
6
|
+
use Fleetbase\FleetOps\Http\Requests\UpdateTrackingStatusRequest;
|
|
7
|
+
use Fleetbase\FleetOps\Http\Resources\v1\DeletedResource;
|
|
8
|
+
use Fleetbase\FleetOps\Http\Resources\v1\TrackingStatus as TrackingStatusResource;
|
|
9
|
+
use Fleetbase\FleetOps\Models\TrackingStatus;
|
|
10
|
+
use Fleetbase\FleetOps\Support\Utils;
|
|
11
|
+
use Fleetbase\Http\Controllers\Controller;
|
|
12
|
+
use Illuminate\Http\Request;
|
|
13
|
+
|
|
14
|
+
class TrackingStatusController extends Controller
|
|
15
|
+
{
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new Fleetbase TrackingStatus resource.
|
|
18
|
+
*
|
|
19
|
+
* @param \Fleetbase\Http\Requests\CreateTrackingStatusRequest $request
|
|
20
|
+
*
|
|
21
|
+
* @return \Fleetbase\Http\Resources\TrackingStatus
|
|
22
|
+
*/
|
|
23
|
+
public function create(CreateTrackingStatusRequest $request)
|
|
24
|
+
{
|
|
25
|
+
// get request input
|
|
26
|
+
$input = $request->only(['status', 'details', 'code', 'city', 'province', 'postal_code', 'country', 'latitude', 'longitude']);
|
|
27
|
+
|
|
28
|
+
// make sure company is set
|
|
29
|
+
$input['company_uuid'] = session('company');
|
|
30
|
+
|
|
31
|
+
// tracking number assignment
|
|
32
|
+
if ($request->has('tracking_number')) {
|
|
33
|
+
$input['tracking_number_uuid'] = Utils::getUuid('tracking_numbers', [
|
|
34
|
+
'public_id' => $request->input('tracking_number'),
|
|
35
|
+
'company_uuid' => session('company'),
|
|
36
|
+
]);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// create the trackingStatus
|
|
40
|
+
$trackingStatus = TrackingStatus::create($input);
|
|
41
|
+
|
|
42
|
+
// response the driver resource
|
|
43
|
+
return new TrackingStatusResource($trackingStatus);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Updates a Fleetbase TrackingStatus resource.
|
|
48
|
+
*
|
|
49
|
+
* @param string $id
|
|
50
|
+
* @param \Fleetbase\Http\Requests\UpdateTrackingStatusRequest $request
|
|
51
|
+
*
|
|
52
|
+
* @return \Fleetbase\Http\Resources\TrackingStatus
|
|
53
|
+
*/
|
|
54
|
+
public function update($id, UpdateTrackingStatusRequest $request)
|
|
55
|
+
{
|
|
56
|
+
// find for the trackingStatus
|
|
57
|
+
try {
|
|
58
|
+
$trackingStatus = TrackingStatus::findRecordOrFail($id);
|
|
59
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
60
|
+
return response()->json(
|
|
61
|
+
[
|
|
62
|
+
'error' => 'TrackingStatus resource not found.',
|
|
63
|
+
],
|
|
64
|
+
404
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// get request input
|
|
69
|
+
$input = $request->only(['status', 'details', 'code', 'city', 'province', 'postal_code', 'country', 'latitude', 'longitude']);
|
|
70
|
+
|
|
71
|
+
// update the trackingStatus
|
|
72
|
+
$trackingStatus->update($input);
|
|
73
|
+
|
|
74
|
+
// response the trackingStatus resource
|
|
75
|
+
return new TrackingStatusResource($trackingStatus);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Query for Fleetbase TrackingStatus resources.
|
|
80
|
+
*
|
|
81
|
+
* @return \Fleetbase\Http\Resources\TrackingStatusCollection
|
|
82
|
+
*/
|
|
83
|
+
public function query(Request $request)
|
|
84
|
+
{
|
|
85
|
+
$results = TrackingStatus::queryWithRequest($request);
|
|
86
|
+
|
|
87
|
+
return TrackingStatusResource::collection($results);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Finds a single Fleetbase TrackingStatus resources.
|
|
92
|
+
*
|
|
93
|
+
* @return \Fleetbase\Http\Resources\TrackingStatusCollection
|
|
94
|
+
*/
|
|
95
|
+
public function find($id)
|
|
96
|
+
{
|
|
97
|
+
// find for the trackingStatus
|
|
98
|
+
try {
|
|
99
|
+
$trackingStatus = TrackingStatus::findRecordOrFail($id);
|
|
100
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
101
|
+
return response()->json(
|
|
102
|
+
[
|
|
103
|
+
'error' => 'TrackingStatus resource not found.',
|
|
104
|
+
],
|
|
105
|
+
404
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// response the trackingStatus resource
|
|
110
|
+
return new TrackingStatusResource($trackingStatus);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Deletes a Fleetbase TrackingStatus resources.
|
|
115
|
+
*
|
|
116
|
+
* @return \Fleetbase\Http\Resources\TrackingStatusCollection
|
|
117
|
+
*/
|
|
118
|
+
public function delete($id)
|
|
119
|
+
{
|
|
120
|
+
// find for the driver
|
|
121
|
+
try {
|
|
122
|
+
$trackingStatus = TrackingStatus::findRecordOrFail($id);
|
|
123
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
124
|
+
return response()->json(
|
|
125
|
+
[
|
|
126
|
+
'error' => 'TrackingStatus resource not found.',
|
|
127
|
+
],
|
|
128
|
+
404
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// delete the trackingStatus
|
|
133
|
+
$trackingStatus->delete();
|
|
134
|
+
|
|
135
|
+
// response the trackingStatus resource
|
|
136
|
+
return new DeletedResource($trackingStatus);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Http\Controllers\Api\v1;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Http\Requests\CreateVehicleRequest;
|
|
6
|
+
use Fleetbase\FleetOps\Http\Requests\UpdateVehicleRequest;
|
|
7
|
+
use Fleetbase\FleetOps\Http\Resources\v1\DeletedResource;
|
|
8
|
+
use Fleetbase\FleetOps\Http\Resources\v1\Vehicle as VehicleResource;
|
|
9
|
+
use Fleetbase\FleetOps\Models\Driver;
|
|
10
|
+
use Fleetbase\FleetOps\Models\Vehicle;
|
|
11
|
+
use Fleetbase\FleetOps\Support\Utils;
|
|
12
|
+
use Fleetbase\Http\Controllers\Controller;
|
|
13
|
+
use Illuminate\Http\Request;
|
|
14
|
+
|
|
15
|
+
class VehicleController extends Controller
|
|
16
|
+
{
|
|
17
|
+
/**
|
|
18
|
+
* Creates a new Fleetbase Vehicle resource.
|
|
19
|
+
*
|
|
20
|
+
* @param \Fleetbase\Http\Requests\CreateVehicleRequest $request
|
|
21
|
+
*
|
|
22
|
+
* @return \Fleetbase\Http\Resources\Vehicle
|
|
23
|
+
*/
|
|
24
|
+
public function create(CreateVehicleRequest $request)
|
|
25
|
+
{
|
|
26
|
+
// get request input
|
|
27
|
+
$input = $request->only(['status', 'make', 'model', 'year', 'trim', 'type', 'plate_number', 'vin', 'meta']);
|
|
28
|
+
// make sure company is set
|
|
29
|
+
$input['company_uuid'] = session('company');
|
|
30
|
+
|
|
31
|
+
// create instance of vehicle model
|
|
32
|
+
$vehicle = new Vehicle();
|
|
33
|
+
|
|
34
|
+
// vendor assignment
|
|
35
|
+
if ($request->has('vendor')) {
|
|
36
|
+
$input['vendor_uuid'] = Utils::getUuid('vendors', [
|
|
37
|
+
'public_id' => $request->input('vendor'),
|
|
38
|
+
'company_uuid' => session('company'),
|
|
39
|
+
]);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// apply user input to vehicle
|
|
43
|
+
$vehicle = $vehicle->fill($input);
|
|
44
|
+
|
|
45
|
+
// save the vehicle
|
|
46
|
+
$vehicle->save();
|
|
47
|
+
|
|
48
|
+
// driver assignment
|
|
49
|
+
if ($request->has('driver')) {
|
|
50
|
+
// set this vehicle to the driver
|
|
51
|
+
try {
|
|
52
|
+
$driver = Driver::findRecordOrFail($request->input('driver'));
|
|
53
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
54
|
+
return response()->json(
|
|
55
|
+
[
|
|
56
|
+
'error' => 'The driver attempted to assign this vehicle was not found.',
|
|
57
|
+
],
|
|
58
|
+
404
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
$driver->vehicle_uuid = $vehicle->uuid;
|
|
63
|
+
$driver->save();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// response the driver resource
|
|
67
|
+
return new VehicleResource($vehicle);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Updates a Fleetbase Vehicle resource.
|
|
72
|
+
*
|
|
73
|
+
* @param string $id
|
|
74
|
+
* @param \Fleetbase\Http\Requests\UpdateVehicleRequest $request
|
|
75
|
+
*
|
|
76
|
+
* @return \Fleetbase\Http\Resources\Vehicle
|
|
77
|
+
*/
|
|
78
|
+
public function update($id, UpdateVehicleRequest $request)
|
|
79
|
+
{
|
|
80
|
+
// find for the vehicle
|
|
81
|
+
try {
|
|
82
|
+
$vehicle = Vehicle::findRecordOrFail($id);
|
|
83
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
84
|
+
return response()->json(
|
|
85
|
+
[
|
|
86
|
+
'error' => 'Vehicle resource not found.',
|
|
87
|
+
],
|
|
88
|
+
404
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// get request input
|
|
93
|
+
$input = $request->only(['status', 'make', 'model', 'year', 'trim', 'type', 'plate_number', 'vin', 'meta']);
|
|
94
|
+
|
|
95
|
+
// vendor assignment
|
|
96
|
+
if ($request->has('vendor')) {
|
|
97
|
+
$input['vendor_uuid'] = Utils::getUuid('vendors', [
|
|
98
|
+
'public_id' => $request->input('vendor'),
|
|
99
|
+
'company_uuid' => session('company'),
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// update the vehicle w/ user input
|
|
104
|
+
$vehicle->fill($input);
|
|
105
|
+
|
|
106
|
+
// if the vin has changed do another vin run
|
|
107
|
+
if ($vehicle->isDirty('vin')) {
|
|
108
|
+
$vehicle->applyAllDataFromVin();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// save the update
|
|
112
|
+
$vehicle->save();
|
|
113
|
+
|
|
114
|
+
// get udpated vehicle
|
|
115
|
+
$vehicle = $vehicle->refresh();
|
|
116
|
+
|
|
117
|
+
// response the vehicle resource
|
|
118
|
+
return new VehicleResource($vehicle);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Query for Fleetbase Vehicle resources.
|
|
123
|
+
*
|
|
124
|
+
* @return \Fleetbase\Http\Resources\VehicleCollection
|
|
125
|
+
*/
|
|
126
|
+
public function query(Request $request)
|
|
127
|
+
{
|
|
128
|
+
$results = Vehicle::queryWithRequest($request, function (&$query, $request) {
|
|
129
|
+
if ($request->has('vendor')) {
|
|
130
|
+
$query->whereHas('vendor', function ($q) use ($request) {
|
|
131
|
+
$q->where('public_id', $request->input('vendor'));
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
return VehicleResource::collection($results);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Finds a single Fleetbase Vehicle resources.
|
|
141
|
+
*
|
|
142
|
+
* @param string $id
|
|
143
|
+
*
|
|
144
|
+
* @return \Fleetbase\Http\Resources\VehicleCollection
|
|
145
|
+
*/
|
|
146
|
+
public function find($id)
|
|
147
|
+
{
|
|
148
|
+
// find for the vehicle
|
|
149
|
+
try {
|
|
150
|
+
$vehicle = Vehicle::findRecordOrFail($id);
|
|
151
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
152
|
+
return response()->json(
|
|
153
|
+
[
|
|
154
|
+
'error' => 'Vehicle resource not found.',
|
|
155
|
+
],
|
|
156
|
+
404
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// response the vehicle resource
|
|
161
|
+
return new VehicleResource($vehicle);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Deletes a Fleetbase Vehicle resources.
|
|
166
|
+
*
|
|
167
|
+
* @param string $id
|
|
168
|
+
*
|
|
169
|
+
* @return \Fleetbase\Http\Resources\VehicleCollection
|
|
170
|
+
*/
|
|
171
|
+
public function delete($id)
|
|
172
|
+
{
|
|
173
|
+
// find for the driver
|
|
174
|
+
try {
|
|
175
|
+
$vehicle = Vehicle::findRecordOrFail($id);
|
|
176
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
177
|
+
return response()->json(
|
|
178
|
+
[
|
|
179
|
+
'error' => 'Vehicle resource not found.',
|
|
180
|
+
],
|
|
181
|
+
404
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// delete the vehicle
|
|
186
|
+
$vehicle->delete();
|
|
187
|
+
|
|
188
|
+
// response the vehicle resource
|
|
189
|
+
return new DeletedResource($vehicle);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Http\Controllers\Api\v1;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Http\Requests\CreateVendorRequest;
|
|
6
|
+
use Fleetbase\FleetOps\Http\Requests\UpdateVendorRequest;
|
|
7
|
+
use Fleetbase\FleetOps\Http\Resources\v1\DeletedResource;
|
|
8
|
+
use Fleetbase\FleetOps\Http\Resources\v1\Vendor as VendorResource;
|
|
9
|
+
use Fleetbase\FleetOps\Models\Vendor;
|
|
10
|
+
use Fleetbase\FleetOps\Support\Utils;
|
|
11
|
+
use Fleetbase\Http\Controllers\Controller;
|
|
12
|
+
use Illuminate\Http\Request;
|
|
13
|
+
|
|
14
|
+
class VendorController extends Controller
|
|
15
|
+
{
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new Fleetbase Vendor resource.
|
|
18
|
+
*
|
|
19
|
+
* @param \Fleetbase\Http\Requests\CreateVendorRequest $request
|
|
20
|
+
*
|
|
21
|
+
* @return \Fleetbase\Http\Resources\Vendor
|
|
22
|
+
*/
|
|
23
|
+
public function create(CreateVendorRequest $request)
|
|
24
|
+
{
|
|
25
|
+
// get request input
|
|
26
|
+
$input = $request->only(['name', 'type', 'email', 'phone', 'meta']);
|
|
27
|
+
|
|
28
|
+
// make sure company is set
|
|
29
|
+
$input['company_uuid'] = session('company');
|
|
30
|
+
|
|
31
|
+
// address assignment
|
|
32
|
+
if ($request->has('address')) {
|
|
33
|
+
$input['place_uuid'] = Utils::getUuid(
|
|
34
|
+
'places',
|
|
35
|
+
[
|
|
36
|
+
'public_id' => $request->input('address'),
|
|
37
|
+
'company_uuid' => session('company'),
|
|
38
|
+
]
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// create the vendor
|
|
43
|
+
$vendor = Vendor::updateOrCreate(
|
|
44
|
+
[
|
|
45
|
+
'company_uuid' => session('company'),
|
|
46
|
+
'name' => strtoupper($input['name']),
|
|
47
|
+
],
|
|
48
|
+
$input
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
// response the driver resource
|
|
52
|
+
return new VendorResource($vendor);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Updates a Fleetbase Vendor resource.
|
|
57
|
+
*
|
|
58
|
+
* @param string $id
|
|
59
|
+
* @param \Fleetbase\Http\Requests\UpdateVendorRequest $request
|
|
60
|
+
*
|
|
61
|
+
* @return \Fleetbase\Http\Resources\Vendor
|
|
62
|
+
*/
|
|
63
|
+
public function update($id, UpdateVendorRequest $request)
|
|
64
|
+
{
|
|
65
|
+
// find for the vendor
|
|
66
|
+
try {
|
|
67
|
+
$vendor = Vendor::findRecordOrFail($id);
|
|
68
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
69
|
+
return response()->json(
|
|
70
|
+
[
|
|
71
|
+
'error' => 'Vendor resource not found.',
|
|
72
|
+
],
|
|
73
|
+
404
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// get request input
|
|
78
|
+
$input = $request->only(['name', 'type', 'email', 'phone', 'meta']);
|
|
79
|
+
|
|
80
|
+
// address assignment
|
|
81
|
+
if ($request->has('address')) {
|
|
82
|
+
$input['place_uuid'] = Utils::getUuid(
|
|
83
|
+
'places',
|
|
84
|
+
[
|
|
85
|
+
'public_id' => $request->input('address'),
|
|
86
|
+
'company_uuid' => session('company'),
|
|
87
|
+
]
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// update the vendor
|
|
92
|
+
$vendor->update($input);
|
|
93
|
+
$vendor->flushAttributesCache();
|
|
94
|
+
|
|
95
|
+
// response the vendor resource
|
|
96
|
+
return new VendorResource($vendor);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Query for Fleetbase Vendor resources.
|
|
101
|
+
*
|
|
102
|
+
* @return \Fleetbase\Http\Resources\VendorCollection
|
|
103
|
+
*/
|
|
104
|
+
public function query(Request $request)
|
|
105
|
+
{
|
|
106
|
+
$results = Vendor::queryWithRequest($request);
|
|
107
|
+
|
|
108
|
+
return VendorResource::collection($results);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Finds a single Fleetbase Vendor resources.
|
|
113
|
+
*
|
|
114
|
+
* @return \Fleetbase\Http\Resources\VendorCollection
|
|
115
|
+
*/
|
|
116
|
+
public function find($id, Request $request)
|
|
117
|
+
{
|
|
118
|
+
// find for the vendor
|
|
119
|
+
try {
|
|
120
|
+
$vendor = Vendor::findRecordOrFail($id);
|
|
121
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
122
|
+
return response()->json(
|
|
123
|
+
[
|
|
124
|
+
'error' => 'Vendor resource not found.',
|
|
125
|
+
],
|
|
126
|
+
404
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// response the vendor resource
|
|
131
|
+
return new VendorResource($vendor);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Deletes a Fleetbase Vendor resources.
|
|
136
|
+
*
|
|
137
|
+
* @return \Fleetbase\Http\Resources\VendorCollection
|
|
138
|
+
*/
|
|
139
|
+
public function delete($id, Request $request)
|
|
140
|
+
{
|
|
141
|
+
// find for the driver
|
|
142
|
+
try {
|
|
143
|
+
$vendor = Vendor::findRecordOrFail($id);
|
|
144
|
+
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
|
|
145
|
+
return response()->json(
|
|
146
|
+
[
|
|
147
|
+
'error' => 'Vendor resource not found.',
|
|
148
|
+
],
|
|
149
|
+
404
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// delete the vendor
|
|
154
|
+
$vendor->delete();
|
|
155
|
+
|
|
156
|
+
// response the vendor resource
|
|
157
|
+
return new DeletedResource($vendor);
|
|
158
|
+
}
|
|
159
|
+
}
|