@fleetbase/storefront-engine 0.2.4 → 0.2.6

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.
Files changed (140) hide show
  1. package/README.md +4 -4
  2. package/addon/components/modals/import-products.hbs +1 -1
  3. package/addon/components/schedule-manager.hbs +2 -2
  4. package/addon/components/widget/customers.hbs +1 -1
  5. package/addon/components/widget/customers.js +7 -4
  6. package/addon/components/widget/orders.js +4 -0
  7. package/addon/controllers/base-controller.js +31 -0
  8. package/addon/controllers/networks/index/network.js +2 -2
  9. package/addon/controllers/networks/index.js +3 -2
  10. package/addon/controllers/products/index/category/new.js +14 -11
  11. package/addon/controllers/products/index/category.js +2 -2
  12. package/addon/controllers/products/index/index.js +2 -2
  13. package/addon/controllers/products/index.js +2 -3
  14. package/addon/models/network.js +0 -1
  15. package/addon/models/product-addon-category.js +10 -1
  16. package/addon/models/product-variant.js +0 -2
  17. package/addon/models/product.js +35 -2
  18. package/addon/routes/customers/index.js +11 -1
  19. package/addon/routes/networks/index.js +9 -0
  20. package/addon/routes/orders/index.js +11 -1
  21. package/addon/routes/products/index.js +8 -2
  22. package/addon/serializers/product.js +16 -0
  23. package/addon/services/storefront.js +81 -0
  24. package/addon/templates/networks/index/network/stores.hbs +2 -2
  25. package/addon/templates/networks/index/network.hbs +1 -1
  26. package/addon/templates/products/index/category/new.hbs +3 -3
  27. package/addon/templates/products/index/category.hbs +20 -3
  28. package/app/controllers/base-controller.js +1 -0
  29. package/assets/sounds/storefront_order_alert.mp3 +0 -0
  30. package/composer.json +3 -3
  31. package/config/environment.js +11 -1
  32. package/extension.json +1 -1
  33. package/index.js +15 -0
  34. package/package.json +132 -125
  35. package/server/src/Auth/Schemas/Storefront.php +31 -39
  36. package/server/src/Console/Commands/NotifyStorefrontOrderNearby.php +9 -11
  37. package/server/src/Expansions/ContactFilterExpansion.php +36 -0
  38. package/server/src/Expansions/EntityExpansion.php +12 -12
  39. package/server/src/Expansions/OrderFilterExpansion.php +31 -0
  40. package/server/src/Expansions/VendorFilterExpansion.php +36 -0
  41. package/server/src/Http/Controllers/ActionController.php +9 -11
  42. package/server/src/Http/Controllers/AddonCategoryController.php +1 -1
  43. package/server/src/Http/Controllers/CustomerController.php +1 -1
  44. package/server/src/Http/Controllers/GatewayController.php +1 -1
  45. package/server/src/Http/Controllers/MetricsController.php +17 -17
  46. package/server/src/Http/Controllers/NetworkController.php +16 -26
  47. package/server/src/Http/Controllers/NotificationChannelController.php +1 -1
  48. package/server/src/Http/Controllers/OrderController.php +18 -22
  49. package/server/src/Http/Controllers/ProductAddonCategoryController.php +1 -2
  50. package/server/src/Http/Controllers/ProductAddonController.php +1 -2
  51. package/server/src/Http/Controllers/ProductController.php +89 -44
  52. package/server/src/Http/Controllers/ProductHourController.php +1 -1
  53. package/server/src/Http/Controllers/ProductVariantController.php +1 -1
  54. package/server/src/Http/Controllers/ProductVariantOptionController.php +1 -1
  55. package/server/src/Http/Controllers/ReviewController.php +1 -1
  56. package/server/src/Http/Controllers/StoreController.php +1 -2
  57. package/server/src/Http/Controllers/StoreHourController.php +1 -1
  58. package/server/src/Http/Controllers/StoreLocationController.php +1 -1
  59. package/server/src/Http/Controllers/StorefrontController.php +0 -2
  60. package/server/src/Http/Controllers/VoteController.php +1 -1
  61. package/server/src/Http/Controllers/v1/CartController.php +16 -26
  62. package/server/src/Http/Controllers/v1/CategoryController.php +3 -4
  63. package/server/src/Http/Controllers/v1/CheckoutController.php +283 -286
  64. package/server/src/Http/Controllers/v1/CustomerController.php +54 -67
  65. package/server/src/Http/Controllers/v1/GatewayControllerController.php +0 -2
  66. package/server/src/Http/Controllers/v1/NetworkController.php +26 -23
  67. package/server/src/Http/Controllers/v1/PaymentMethodController.php +0 -2
  68. package/server/src/Http/Controllers/v1/ProductController.php +1 -4
  69. package/server/src/Http/Controllers/v1/ReviewController.php +31 -35
  70. package/server/src/Http/Controllers/v1/ServiceQuoteController.php +57 -53
  71. package/server/src/Http/Controllers/v1/StoreController.php +8 -16
  72. package/server/src/Http/Filter/AddonCategoryFilter.php +1 -1
  73. package/server/src/Http/Filter/OrderFilter.php +2 -2
  74. package/server/src/Http/Middleware/SetStorefrontSession.php +9 -20
  75. package/server/src/Http/Requests/AddStoreToNetworkCategory.php +3 -3
  76. package/server/src/Http/Requests/CreateCustomerRequest.php +5 -7
  77. package/server/src/Http/Requests/CreateReviewRequest.php +4 -5
  78. package/server/src/Http/Requests/GetServiceQuoteFromCart.php +2 -2
  79. package/server/src/Http/Requests/InitializeCheckoutRequest.php +5 -5
  80. package/server/src/Http/Requests/NetworkActionRequest.php +2 -2
  81. package/server/src/Http/Requests/VerifyCreateCustomerRequest.php +2 -2
  82. package/server/src/Http/Resources/Cart.php +20 -11
  83. package/server/src/Http/Resources/Category.php +12 -11
  84. package/server/src/Http/Resources/Customer.php +15 -14
  85. package/server/src/Http/Resources/Gateway.php +12 -11
  86. package/server/src/Http/Resources/Media.php +9 -8
  87. package/server/src/Http/Resources/Network.php +33 -28
  88. package/server/src/Http/Resources/Product.php +89 -81
  89. package/server/src/Http/Resources/Review.php +14 -13
  90. package/server/src/Http/Resources/ReviewCustomer.php +12 -11
  91. package/server/src/Http/Resources/Store.php +39 -33
  92. package/server/src/Http/Resources/StoreHour.php +9 -8
  93. package/server/src/Http/Resources/StoreLocation.php +9 -9
  94. package/server/src/Imports/ProductsImport.php +0 -2
  95. package/server/src/Jobs/DownloadProductImageUrl.php +7 -4
  96. package/server/src/Listeners/HandleOrderCompleted.php +2 -1
  97. package/server/src/Listeners/HandleOrderDispatched.php +2 -1
  98. package/server/src/Listeners/HandleOrderDriverAssigned.php +2 -1
  99. package/server/src/Listeners/HandleOrderStarted.php +4 -3
  100. package/server/src/Mail/StorefrontNetworkInvite.php +7 -6
  101. package/server/src/Models/AddonCategory.php +2 -4
  102. package/server/src/Models/Cart.php +117 -124
  103. package/server/src/Models/Checkout.php +14 -12
  104. package/server/src/Models/Customer.php +9 -9
  105. package/server/src/Models/Gateway.php +22 -22
  106. package/server/src/Models/Network.php +41 -52
  107. package/server/src/Models/NetworkStore.php +6 -5
  108. package/server/src/Models/NotificationChannel.php +11 -9
  109. package/server/src/Models/PaymentMethod.php +9 -7
  110. package/server/src/Models/Product.php +152 -30
  111. package/server/src/Models/ProductAddon.php +14 -11
  112. package/server/src/Models/ProductAddonCategory.php +9 -8
  113. package/server/src/Models/ProductHour.php +6 -5
  114. package/server/src/Models/ProductStoreLocation.php +7 -5
  115. package/server/src/Models/ProductVariant.php +15 -11
  116. package/server/src/Models/ProductVariantOption.php +12 -9
  117. package/server/src/Models/Review.php +9 -7
  118. package/server/src/Models/Store.php +68 -84
  119. package/server/src/Models/StoreHour.php +6 -5
  120. package/server/src/Models/StoreLocation.php +12 -8
  121. package/server/src/Models/StorefrontModel.php +1 -1
  122. package/server/src/Models/Vote.php +8 -6
  123. package/server/src/Notifications/StorefrontOrderCanceled.php +15 -19
  124. package/server/src/Notifications/StorefrontOrderCompleted.php +15 -19
  125. package/server/src/Notifications/StorefrontOrderCreated.php +31 -36
  126. package/server/src/Notifications/StorefrontOrderDriverAssigned.php +15 -20
  127. package/server/src/Notifications/StorefrontOrderEnroute.php +14 -19
  128. package/server/src/Notifications/StorefrontOrderNearby.php +16 -21
  129. package/server/src/Notifications/StorefrontOrderPreparing.php +15 -18
  130. package/server/src/Notifications/StorefrontOrderReadyForPickup.php +15 -18
  131. package/server/src/Observers/NetworkObserver.php +2 -3
  132. package/server/src/Observers/ProductObserver.php +17 -33
  133. package/server/src/Providers/EventServiceProvider.php +15 -4
  134. package/server/src/Providers/StorefrontServiceProvider.php +8 -10
  135. package/server/src/Support/Metrics.php +12 -12
  136. package/server/src/Support/OrderConfig.php +3 -2
  137. package/server/src/Support/QPay.php +22 -20
  138. package/server/src/Support/Storefront.php +18 -17
  139. package/server/src/routes.php +1 -1
  140. package/tsconfig.declarations.json +10 -0
@@ -2,15 +2,15 @@
2
2
 
3
3
  namespace Fleetbase\Storefront\Http\Controllers\v1;
4
4
 
5
+ use Fleetbase\FleetOps\Http\Resources\v1\DeletedResource;
6
+ use Fleetbase\FleetOps\Support\Utils;
5
7
  use Fleetbase\Http\Controllers\Controller;
8
+ use Fleetbase\Models\File;
6
9
  use Fleetbase\Storefront\Http\Requests\CreateReviewRequest;
7
10
  use Fleetbase\Storefront\Http\Resources\Review as StorefrontReview;
8
- use Fleetbase\FleetOps\Http\Resources\v1\DeletedResource;
9
- use Fleetbase\Storefront\Models\Store;
10
11
  use Fleetbase\Storefront\Models\Review;
12
+ use Fleetbase\Storefront\Models\Store;
11
13
  use Fleetbase\Storefront\Support\Storefront;
12
- use Fleetbase\FleetOps\Support\Utils;
13
- use Fleetbase\Models\File;
14
14
  use Illuminate\Database\Eloquent\ModelNotFoundException;
15
15
  use Illuminate\Http\Request;
16
16
  use Illuminate\Support\Facades\Storage;
@@ -20,14 +20,13 @@ class ReviewController extends Controller
20
20
  /**
21
21
  * Query for Storefront Review resources.
22
22
  *
23
- * @param \Illuminate\Http\Request $request
24
23
  * @return \Illuminate\Http\Response
25
24
  */
26
25
  public function query(Request $request)
27
26
  {
28
- $limit = $request->input('limit', false);
27
+ $limit = $request->input('limit', false);
29
28
  $offset = $request->input('offset', false);
30
- $sort = $request->input('sort');
29
+ $sort = $request->input('sort');
31
30
 
32
31
  if (session('storefront_store')) {
33
32
  $results = Review::queryWithRequest($request, function (&$query) use ($limit, $offset, $sort) {
@@ -71,7 +70,7 @@ class ReviewController extends Controller
71
70
  if ($request->filled('store')) {
72
71
  $store = Store::where([
73
72
  'company_uuid' => session('company'),
74
- 'public_id' => $request->input('store')
73
+ 'public_id' => $request->input('store'),
75
74
  ])->whereHas('networks', function ($q) {
76
75
  $q->where('network_uuid', session('storefront_network'));
77
76
  })->first();
@@ -124,13 +123,12 @@ class ReviewController extends Controller
124
123
  /**
125
124
  * Coutns the number of ratings between 1-5 for a store.
126
125
  *
127
- * @param \Illuminate\Http\Request $request
128
126
  * @return \Illuminate\Http\Response
129
127
  */
130
128
  public function count(Request $request)
131
129
  {
132
130
  $counts = [];
133
- $range = range(1, 5);
131
+ $range = range(1, 5);
134
132
 
135
133
  if (session('storefront_store')) {
136
134
  foreach ($range as $rating) {
@@ -142,7 +140,7 @@ class ReviewController extends Controller
142
140
  if ($request->filled('store')) {
143
141
  $store = Store::where([
144
142
  'company_uuid' => session('company'),
145
- 'public_id' => $request->input('store')
143
+ 'public_id' => $request->input('store'),
146
144
  ])->whereHas('networks', function ($q) {
147
145
  $q->where('network_uuid', session('storefront_network'));
148
146
  })->first();
@@ -163,7 +161,8 @@ class ReviewController extends Controller
163
161
  /**
164
162
  * Finds a single Storefront Review resources.
165
163
  *
166
- * @param string $id
164
+ * @param string $id
165
+ *
167
166
  * @return \Fleetbase\Http\Response
168
167
  */
169
168
  public function find($id)
@@ -182,13 +181,12 @@ class ReviewController extends Controller
182
181
  /**
183
182
  * Create a review.
184
183
  *
185
- * @param \Fleetbase\Storefront\Http\Requests\CreateReviewRequest $request
186
184
  * @return \Fleetbase\Http\Response
187
185
  */
188
186
  public function create(CreateReviewRequest $request)
189
187
  {
190
188
  $customer = Storefront::getCustomerFromToken();
191
- $about = Storefront::about();
189
+ $about = Storefront::about();
192
190
 
193
191
  if (!$customer) {
194
192
  return response()->error('Not authorized to create reviews');
@@ -202,11 +200,11 @@ class ReviewController extends Controller
202
200
 
203
201
  $review = Review::create([
204
202
  'created_by_uuid' => $customer->user_uuid,
205
- 'customer_uuid' => $customer->uuid,
206
- 'subject_uuid' => $subject->uuid,
207
- 'subject_type' => Utils::getMutationType($subject),
208
- 'rating' => $request->input('rating'),
209
- 'content' => $request->input('content')
203
+ 'customer_uuid' => $customer->uuid,
204
+ 'subject_uuid' => $subject->uuid,
205
+ 'subject_type' => Utils::getMutationType($subject),
206
+ 'rating' => $request->input('rating'),
207
+ 'content' => $request->input('content'),
210
208
  ]);
211
209
 
212
210
  // if files provided
@@ -214,10 +212,9 @@ class ReviewController extends Controller
214
212
  $files = $request->input('files');
215
213
 
216
214
  foreach ($files as $upload) {
217
-
218
- $data = Utils::get($upload, 'data');
219
- $mimeType = Utils::get($upload, 'type');
220
- $extension = File::getExtensionFromMimeType($mimeType);
215
+ $data = Utils::get($upload, 'data');
216
+ $mimeType = Utils::get($upload, 'type');
217
+ $extension = File::getExtensionFromMimeType($mimeType);
221
218
  $bucketPath = 'hyperstore/' . $about->public_id . '/review-photos/' . $review->uuid . '/' . File::randomFileName($extension);
222
219
 
223
220
  // upload file to path
@@ -225,18 +222,18 @@ class ReviewController extends Controller
225
222
 
226
223
  // create the file
227
224
  $file = File::create([
228
- 'company_uuid' => session('company'),
229
- 'uploader_uuid' => $customer->user_uuid,
230
- 'subject_uuid' => $review->uuid,
231
- 'subject_type' => Utils::getMutationType($review),
232
- 'name' => basename($bucketPath),
225
+ 'company_uuid' => session('company'),
226
+ 'uploader_uuid' => $customer->user_uuid,
227
+ 'subject_uuid' => $review->uuid,
228
+ 'subject_type' => Utils::getMutationType($review),
229
+ 'name' => basename($bucketPath),
233
230
  'original_filename' => basename($bucketPath),
234
- 'extension' => $extension,
235
- 'content_type' => $mimeType,
236
- 'path' => $bucketPath,
237
- 'bucket' => config('filesystems.disks.s3.bucket'),
238
- 'type' => 'storefront_review_upload',
239
- 'size' => Utils::getBase64ImageSize($data)
231
+ 'extension' => $extension,
232
+ 'content_type' => $mimeType,
233
+ 'path' => $bucketPath,
234
+ 'bucket' => config('filesystems.disks.s3.bucket'),
235
+ 'type' => 'storefront_review_upload',
236
+ 'size' => Utils::getBase64ImageSize($data),
240
237
  ]);
241
238
 
242
239
  $review->files->push($file);
@@ -249,7 +246,6 @@ class ReviewController extends Controller
249
246
  /**
250
247
  * Deletes a Storefront Review resources.
251
248
  *
252
- * @param \Illuminate\Http\Request $request
253
249
  * @return \Fleetbase\Http\Resources\v1\DeletedResource
254
250
  */
255
251
  public function delete($id)
@@ -2,21 +2,21 @@
2
2
 
3
3
  namespace Fleetbase\Storefront\Http\Controllers\v1;
4
4
 
5
- use Fleetbase\Http\Controllers\Controller;
6
- use Fleetbase\Storefront\Http\Requests\GetServiceQuoteFromCart;
7
5
  use Fleetbase\FleetOps\Http\Resources\v1\ServiceQuote as ServiceQuoteResource;
8
6
  use Fleetbase\FleetOps\Models\Entity;
7
+ use Fleetbase\FleetOps\Models\IntegratedVendor;
9
8
  use Fleetbase\FleetOps\Models\Place;
10
9
  use Fleetbase\FleetOps\Models\ServiceQuote;
11
10
  use Fleetbase\FleetOps\Models\ServiceQuoteItem;
12
11
  use Fleetbase\FleetOps\Models\ServiceRate;
13
- use Fleetbase\FleetOps\Models\IntegratedVendor;
14
- use Fleetbase\Storefront\Models\Store;
12
+ use Fleetbase\FleetOps\Support\Flow;
13
+ use Fleetbase\FleetOps\Support\Utils;
14
+ use Fleetbase\Http\Controllers\Controller;
15
+ use Fleetbase\Storefront\Http\Requests\GetServiceQuoteFromCart;
15
16
  use Fleetbase\Storefront\Models\Cart;
16
17
  use Fleetbase\Storefront\Models\Product;
18
+ use Fleetbase\Storefront\Models\Store;
17
19
  use Fleetbase\Storefront\Models\StoreLocation;
18
- use Fleetbase\FleetOps\Support\Flow;
19
- use Fleetbase\FleetOps\Support\Utils;
20
20
  use Illuminate\Support\Str;
21
21
 
22
22
  class ServiceQuoteController extends Controller
@@ -24,23 +24,24 @@ class ServiceQuoteController extends Controller
24
24
  /**
25
25
  * Query for Storefront Product resources.
26
26
  *
27
- * @param \Illuminate\Http\Request $request
27
+ * @param \Illuminate\Http\Request $request
28
+ *
28
29
  * @return \Fleetbase\Http\Resources\DriverCollection
29
30
  */
30
31
  public function fromCart(GetServiceQuoteFromCart $request)
31
32
  {
32
- $requestId = ServiceQuote::generatePublicId('request');
33
- $origin = $this->getPlaceFromId($request->input('origin'));
34
- $destination = $this->getPlaceFromId($request->input('destination'));
35
- $facilitator = $request->input('facilitator');
36
- $scheduledAt = $request->input('scheduled_at');
37
- $serviceType = $request->input('service_type');
38
- $cart = Cart::retrieve($request->input('cart'));
39
- $currency = $cart->currency;
40
- $config = $request->input('config', 'storefront');
41
- $all = $request->boolean('all');
33
+ $requestId = ServiceQuote::generatePublicId('request');
34
+ $origin = $this->getPlaceFromId($request->input('origin'));
35
+ $destination = $this->getPlaceFromId($request->input('destination'));
36
+ $facilitator = $request->input('facilitator');
37
+ $scheduledAt = $request->input('scheduled_at');
38
+ $serviceType = $request->input('service_type');
39
+ $cart = Cart::retrieve($request->input('cart'));
40
+ $currency = $cart->currency;
41
+ $config = $request->input('config', 'storefront');
42
+ $all = $request->boolean('all');
42
43
  $isRouteOptimized = $request->boolean('is_route_optimized', true);
43
- $isNetwork = Str::startsWith(session('storefront_key'), 'network_');
44
+ $isNetwork = Str::startsWith(session('storefront_key'), 'network_');
44
45
 
45
46
  if ($isNetwork) {
46
47
  return $this->fromCartForNetwork($request);
@@ -77,7 +78,7 @@ class ServiceQuoteController extends Controller
77
78
 
78
79
  // set origin and destination in service quote meta
79
80
  $serviceQuote->updateMeta([
80
- 'origin' => $origin->public_id,
81
+ 'origin' => $origin->public_id,
81
82
  'destination' => $destination->public_id,
82
83
  ]);
83
84
 
@@ -120,7 +121,7 @@ class ServiceQuoteController extends Controller
120
121
 
121
122
  // set origin and destination in service quote meta
122
123
  $serviceQuote->updateMeta([
123
- 'origin' => $origin->public_id,
124
+ 'origin' => $origin->public_id,
124
125
  'destination' => $destination->public_id,
125
126
  ]);
126
127
 
@@ -135,24 +136,24 @@ class ServiceQuoteController extends Controller
135
136
  [$subTotal, $lines] = $serviceRate->quoteFromPreliminaryData($entities, [$origin, $destination], $matrix->distance, $matrix->time, false);
136
137
 
137
138
  $quote = ServiceQuote::create([
138
- 'request_id' => $requestId,
139
- 'company_uuid' => $serviceRate->company_uuid,
139
+ 'request_id' => $requestId,
140
+ 'company_uuid' => $serviceRate->company_uuid,
140
141
  'service_rate_uuid' => $serviceRate->uuid,
141
- 'amount' => $subTotal,
142
- 'currency' => $serviceRate->currency,
143
- 'meta' => [
144
- 'origin' => $origin->public_id,
142
+ 'amount' => $subTotal,
143
+ 'currency' => $serviceRate->currency,
144
+ 'meta' => [
145
+ 'origin' => $origin->public_id,
145
146
  'destination' => $destination->public_id,
146
- ]
147
+ ],
147
148
  ]);
148
149
 
149
150
  $items = $lines->map(function ($line) use ($quote) {
150
151
  return ServiceQuoteItem::create([
151
152
  'service_quote_uuid' => $quote->uuid,
152
- 'amount' => $line['amount'],
153
- 'currency' => $line['currency'],
154
- 'details' => $line['details'],
155
- 'code' => $line['code'],
153
+ 'amount' => $line['amount'],
154
+ 'currency' => $line['currency'],
155
+ 'details' => $line['details'],
156
+ 'code' => $line['code'],
156
157
  ]);
157
158
  });
158
159
 
@@ -179,24 +180,26 @@ class ServiceQuoteController extends Controller
179
180
 
180
181
  return new ServiceQuoteResource($bestQuote);
181
182
  }
183
+
182
184
  /**
183
185
  * Query for Storefront Product resources.
184
186
  *
185
- * @param \Illuminate\Http\Request $request
187
+ * @param \Illuminate\Http\Request $request
188
+ *
186
189
  * @return \Fleetbase\Http\Resources\DriverCollection
187
190
  */
188
191
  public function fromCartForNetwork(GetServiceQuoteFromCart $request)
189
192
  {
190
193
  $requestId = ServiceQuote::generatePublicId('request');
191
194
  // $origin = $this->getPlaceFromId($request->input('origin'));
192
- $destination = $this->getPlaceFromId($request->input('destination'));
193
- $facilitator = $request->input('facilitator');
194
- $scheduledAt = $request->input('scheduled_at');
195
- $serviceType = $request->input('service_type');
196
- $cart = Cart::retrieve($request->input('cart'));
197
- $currency = $cart->currency;
198
- $config = $request->input('config', 'storefront');
199
- $all = $request->boolean('all');
195
+ $destination = $this->getPlaceFromId($request->input('destination'));
196
+ $facilitator = $request->input('facilitator');
197
+ $scheduledAt = $request->input('scheduled_at');
198
+ $serviceType = $request->input('service_type');
199
+ $cart = Cart::retrieve($request->input('cart'));
200
+ $currency = $cart->currency;
201
+ $config = $request->input('config', 'storefront');
202
+ $all = $request->boolean('all');
200
203
  $isRouteOptimized = $request->boolean('is_route_optimized', true);
201
204
 
202
205
  // make sure destination is set
@@ -263,7 +266,7 @@ class ServiceQuoteController extends Controller
263
266
 
264
267
  // set origin and destination in service quote meta
265
268
  $serviceQuote->updateMeta([
266
- 'origin' => $origins->pluck('public_id')->toArray(),
269
+ 'origin' => $origins->pluck('public_id')->toArray(),
267
270
  'destination' => $destination->public_id,
268
271
  ]);
269
272
 
@@ -307,7 +310,7 @@ class ServiceQuoteController extends Controller
307
310
 
308
311
  // set origin and destination in service quote meta
309
312
  $serviceQuote->updateMeta([
310
- 'origin' => $origins->pluck('public_id')->toArray(),
313
+ 'origin' => $origins->pluck('public_id')->toArray(),
311
314
  'destination' => $destination->public_id,
312
315
  ]);
313
316
 
@@ -322,24 +325,24 @@ class ServiceQuoteController extends Controller
322
325
  [$subTotal, $lines] = $serviceRate->quoteFromPreliminaryData($entities, [...$origins, $destination], $matrix->distance, $matrix->time, false);
323
326
 
324
327
  $quote = ServiceQuote::create([
325
- 'request_id' => $requestId,
326
- 'company_uuid' => $serviceRate->company_uuid,
328
+ 'request_id' => $requestId,
329
+ 'company_uuid' => $serviceRate->company_uuid,
327
330
  'service_rate_uuid' => $serviceRate->uuid,
328
- 'amount' => $subTotal,
329
- 'currency' => $serviceRate->currency,
330
- 'meta' => [
331
- 'origin' => $origins->pluck('public_id')->toArray(),
331
+ 'amount' => $subTotal,
332
+ 'currency' => $serviceRate->currency,
333
+ 'meta' => [
334
+ 'origin' => $origins->pluck('public_id')->toArray(),
332
335
  'destination' => $destination->public_id,
333
- ]
336
+ ],
334
337
  ]);
335
338
 
336
339
  $items = $lines->map(function ($line) use ($quote) {
337
340
  return ServiceQuoteItem::create([
338
341
  'service_quote_uuid' => $quote->uuid,
339
- 'amount' => $line['amount'],
340
- 'currency' => $line['currency'],
341
- 'details' => $line['details'],
342
- 'code' => $line['code'],
342
+ 'amount' => $line['amount'],
343
+ 'currency' => $line['currency'],
344
+ 'details' => $line['details'],
345
+ 'code' => $line['code'],
343
346
  ]);
344
347
  });
345
348
 
@@ -371,6 +374,7 @@ class ServiceQuoteController extends Controller
371
374
  * Returns a place from either a place id or store location id.
372
375
  *
373
376
  * @param string $id
377
+ *
374
378
  * @return Place
375
379
  */
376
380
  public function getPlaceFromId($id)
@@ -21,7 +21,6 @@ class StoreController extends Controller
21
21
  /**
22
22
  * Returns general information and settings about the storefront or network given the key.
23
23
  *
24
- * @param \Illuminate\Http\Request $request
25
24
  * @return \Illuminate\Http\Response
26
25
  */
27
26
  public function about()
@@ -42,7 +41,6 @@ class StoreController extends Controller
42
41
  /**
43
42
  * Returns all locations and their hours for the current store.
44
43
  *
45
- * @param \Illuminate\Http\Request $request
46
44
  * @return \Illuminate\Http\Response
47
45
  */
48
46
  public function locations(Request $request)
@@ -65,8 +63,6 @@ class StoreController extends Controller
65
63
  /**
66
64
  * Returns a specific store location given the id.
67
65
  *
68
- * @param string $id
69
- * @param \Illuminate\Http\Request $request
70
66
  * @return \Illuminate\Http\Response
71
67
  */
72
68
  public function location(string $id, Request $request)
@@ -76,11 +72,11 @@ class StoreController extends Controller
76
72
  }
77
73
 
78
74
  $storeId = $request->input('store', session('storefront_store'));
79
- $store = Store::where('public_id', $storeId)->orWhere('uuid', $storeId)->first();
75
+ $store = Store::where('public_id', $storeId)->orWhere('uuid', $storeId)->first();
80
76
 
81
77
  $location = StoreLocation::where([
82
- 'public_id' => $id,
83
- 'store_uuid' => $store->uuid
78
+ 'public_id' => $id,
79
+ 'store_uuid' => $store->uuid,
84
80
  ])
85
81
  ->with(['place', 'hours'])
86
82
  ->first();
@@ -91,7 +87,6 @@ class StoreController extends Controller
91
87
  /**
92
88
  * Returns all payment gateways for the current store.
93
89
  *
94
- * @param \Illuminate\Http\Request $request
95
90
  * @return \Illuminate\Http\Response
96
91
  */
97
92
  public function gateways(Request $request)
@@ -99,7 +94,7 @@ class StoreController extends Controller
99
94
  $id = session('storefront_store') ?? session('storefront_network');
100
95
 
101
96
  $sandbox = $request->input('sandbox', false);
102
- $query = Gateway::select(['public_id', 'name', 'code', 'type', 'sandbox', 'return_url', 'callback_url'])->where('owner_uuid', $id);
97
+ $query = Gateway::select(['public_id', 'name', 'code', 'type', 'sandbox', 'return_url', 'callback_url'])->where('owner_uuid', $id);
103
98
 
104
99
  if ($sandbox) {
105
100
  $query->where('sandbox', 1);
@@ -123,8 +118,6 @@ class StoreController extends Controller
123
118
  /**
124
119
  * Returns a specific payment gateway given the id.
125
120
  *
126
- * @param string $id
127
- * @param \Illuminate\Http\Request $request
128
121
  * @return \Illuminate\Http\Response
129
122
  */
130
123
  public function gateway(string $id, Request $request)
@@ -132,7 +125,7 @@ class StoreController extends Controller
132
125
  $ownerId = session('storefront_store') ?? session('storefront_network');
133
126
 
134
127
  $sandbox = $request->input('sandbox', false);
135
- $query = Gateway::select(['public_id', 'name', 'code', 'type', 'sandbox', 'return_url', 'callback_url'])->where(['public_id' => $id, 'owner_uuid' => $ownerId]);
128
+ $query = Gateway::select(['public_id', 'name', 'code', 'type', 'sandbox', 'return_url', 'callback_url'])->where(['public_id' => $id, 'owner_uuid' => $ownerId]);
136
129
 
137
130
  if ($sandbox) {
138
131
  $query->where('sandbox', 1);
@@ -147,15 +140,14 @@ class StoreController extends Controller
147
140
  /**
148
141
  * Search current store or network.
149
142
  *
150
- * @param \Illuminate\Http\Request $request
151
143
  * @return \Illuminate\Http\Response
152
144
  */
153
145
  public function search(Request $request)
154
146
  {
155
147
  $searchQuery = $request->input('query', '');
156
- $limit = $request->input('limit', 14);
157
- $store = $request->input('store');
158
- $key = session('storefront_key');
148
+ $limit = $request->input('limit', 14);
149
+ $store = $request->input('store');
150
+ $key = session('storefront_key');
159
151
 
160
152
  if (Str::startsWith($key, 'store')) {
161
153
  $results = Product::where('store_uuid', session('storefront_store'))
@@ -12,7 +12,7 @@ class AddonCategoryFilter extends Filter
12
12
  $this->builder->where(
13
13
  [
14
14
  'company_uuid' => $this->session->get('company'),
15
- 'for' => 'storefront_product_addon'
15
+ 'for' => 'storefront_product_addon',
16
16
  ]
17
17
  );
18
18
  }
@@ -12,7 +12,7 @@ class OrderFilter extends FleetOpsOrderFilter
12
12
  ->where(
13
13
  [
14
14
  'company_uuid' => $this->session->get('company'),
15
- 'type' => 'storefront'
15
+ 'type' => 'storefront',
16
16
  ]
17
17
  )
18
18
  ->whereHas(
@@ -34,7 +34,7 @@ class OrderFilter extends FleetOpsOrderFilter
34
34
  [
35
35
  'payload',
36
36
  'trackingNumber',
37
- 'trackingStatuses'
37
+ 'trackingStatuses',
38
38
  ]
39
39
  );
40
40
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  namespace Fleetbase\Storefront\Http\Middleware;
4
4
 
5
+ use Fleetbase\FleetOps\Models\Contact;
5
6
  use Fleetbase\Storefront\Models\Network;
6
7
  use Fleetbase\Storefront\Models\Store;
7
- use Fleetbase\FleetOps\Models\Contact;
8
8
  use Illuminate\Http\Request;
9
9
  use Illuminate\Support\Str;
10
10
  use Laravel\Sanctum\PersonalAccessToken;
@@ -13,10 +13,6 @@ class SetStorefrontSession
13
13
  {
14
14
  /**
15
15
  * Handle an incoming request.
16
- *
17
- * @param \Illuminate\Http\Request $request
18
- * @param \Closure $next
19
- * @return mixed
20
16
  */
21
17
  public function handle(Request $request, \Closure $next)
22
18
  {
@@ -38,9 +34,6 @@ class SetStorefrontSession
38
34
 
39
35
  /**
40
36
  * Checks if storefront key is valid.
41
- *
42
- * @param string $key
43
- * @return boolean
44
37
  */
45
38
  public function isValidKey(string $key): bool
46
39
  {
@@ -57,9 +50,6 @@ class SetStorefrontSession
57
50
 
58
51
  /**
59
52
  * Sets the storefront key to session.
60
- *
61
- * @param string $key
62
- * @return void
63
53
  */
64
54
  public function setKey(string $key): void
65
55
  {
@@ -69,17 +59,17 @@ class SetStorefrontSession
69
59
  $store = Store::select(['uuid', 'company_uuid', 'currency'])->where('key', $key)->first();
70
60
 
71
61
  if ($store) {
72
- $session['storefront_store'] = $store->uuid;
62
+ $session['storefront_store'] = $store->uuid;
73
63
  $session['storefront_currency'] = $store->currency;
74
- $session['company'] = $store->company_uuid;
64
+ $session['company'] = $store->company_uuid;
75
65
  }
76
- } else if (Str::startsWith($key, 'network')) {
66
+ } elseif (Str::startsWith($key, 'network')) {
77
67
  $network = Network::select(['uuid', 'company_uuid', 'currency'])->where('key', $key)->first();
78
68
 
79
69
  if ($network) {
80
- $session['storefront_network'] = $network->uuid;
70
+ $session['storefront_network'] = $network->uuid;
81
71
  $session['storefront_currency'] = $network->currency;
82
- $session['company'] = $network->company_uuid;
72
+ $session['company'] = $network->company_uuid;
83
73
  }
84
74
  }
85
75
 
@@ -89,9 +79,8 @@ class SetStorefrontSession
89
79
  }
90
80
 
91
81
  /**
92
- * Set the customer id to session if applicable
82
+ * Set the customer id to session if applicable.
93
83
  *
94
- * @param Request $request
95
84
  * @return void
96
85
  */
97
86
  public function setupCustomerSession(Request $request)
@@ -112,8 +101,8 @@ class SetStorefrontSession
112
101
 
113
102
  session([
114
103
  'customer_id' => Str::replaceFirst('contact', 'customer', $contact->public_id),
115
- 'contact_id' => $contact->public_id,
116
- 'customer' => $contact->uuid
104
+ 'contact_id' => $contact->public_id,
105
+ 'customer' => $contact->uuid,
117
106
  ]);
118
107
  }
119
108
  }
@@ -13,7 +13,7 @@ class AddStoreToNetworkCategory extends FleetbaseRequest
13
13
  */
14
14
  public function all($keys = null)
15
15
  {
16
- $data = parent::all($keys);
16
+ $data = parent::all($keys);
17
17
  $data['id'] = $this->route('id');
18
18
 
19
19
  return $data;
@@ -37,9 +37,9 @@ class AddStoreToNetworkCategory extends FleetbaseRequest
37
37
  public function rules()
38
38
  {
39
39
  return [
40
- 'id' => ['required', 'exists:storefront.networks,uuid'],
40
+ 'id' => ['required', 'exists:storefront.networks,uuid'],
41
41
  'category' => ['required', 'exists:categories,uuid'],
42
- 'store' => ['required', 'exists:storefront.stores,uuid', 'exists:storefront.network_stores,store_uuid'],
42
+ 'store' => ['required', 'exists:storefront.stores,uuid', 'exists:storefront.network_stores,store_uuid'],
43
43
  ];
44
44
  }
45
45
  }
@@ -3,10 +3,8 @@
3
3
  namespace Fleetbase\Storefront\Http\Requests;
4
4
 
5
5
  use Fleetbase\Http\Requests\FleetbaseRequest;
6
- use Fleetbase\Rules\ExistsInAny;
7
6
  use Illuminate\Validation\Rule;
8
7
 
9
-
10
8
  class CreateCustomerRequest extends FleetbaseRequest
11
9
  {
12
10
  /**
@@ -27,18 +25,18 @@ class CreateCustomerRequest extends FleetbaseRequest
27
25
  public function rules()
28
26
  {
29
27
  return [
30
- 'code' => 'required|exists:verification_codes,code',
31
- 'name' => 'required',
28
+ 'code' => 'required|exists:verification_codes,code',
29
+ 'name' => 'required',
32
30
  'email' => [
33
31
  'email', 'nullable', Rule::unique('contacts')->where(function ($query) {
34
32
  return $query->whereNull('deleted_at');
35
- })
33
+ }),
36
34
  ],
37
35
  'phone' => [
38
36
  'nullable', Rule::unique('contacts')->where(function ($query) {
39
37
  return $query->whereNull('deleted_at');
40
- })
41
- ]
38
+ }),
39
+ ],
42
40
  ];
43
41
  }
44
42
  }
@@ -8,7 +8,6 @@ class CreateReviewRequest extends FleetbaseRequest
8
8
  {
9
9
  /**
10
10
  * Determine if the user is authorized to make this request.
11
- *
12
11
  *
13
12
  * @return bool
14
13
  */
@@ -25,10 +24,10 @@ class CreateReviewRequest extends FleetbaseRequest
25
24
  public function rules()
26
25
  {
27
26
  return [
28
- 'rating' => 'required|numeric',
29
- 'content' => 'required',
30
- 'files' => 'sometimes|array',
31
- 'rejected' => 'sometimes|boolean'
27
+ 'rating' => 'required|numeric',
28
+ 'content' => 'required',
29
+ 'files' => 'sometimes|array',
30
+ 'rejected' => 'sometimes|boolean',
32
31
  ];
33
32
  }
34
33
  }