@fleetbase/fleetops-engine 0.6.8 → 0.6.9

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 (42) hide show
  1. package/addon/components/activity-event-selector.js +4 -0
  2. package/addon/components/display-place.hbs +27 -3
  3. package/addon/components/route-list.hbs +3 -3
  4. package/addon/controllers/operations/orders/index.js +0 -4
  5. package/addon/routes/operations/orders/index/view.js +18 -1
  6. package/addon/services/movement-tracker.js +1 -1
  7. package/addon/styles/fleetops-engine.css +7 -0
  8. package/addon/templates/operations/orders/index/new.hbs +2 -2
  9. package/addon/templates/operations/orders/index/view.hbs +5 -1
  10. package/addon/templates/operations/orders/index.hbs +6 -1
  11. package/addon/templates/settings/notifications.hbs +9 -1
  12. package/composer.json +1 -1
  13. package/extension.json +1 -1
  14. package/package.json +1 -1
  15. package/server/src/Console/Commands/TrackOrderDistanceAndTime.php +2 -2
  16. package/server/src/Events/OrderCanceled.php +6 -0
  17. package/server/src/Events/OrderCompleted.php +6 -0
  18. package/server/src/Events/OrderDispatched.php +6 -0
  19. package/server/src/Events/OrderFailed.php +6 -0
  20. package/server/src/Events/WaypointActivityChanged.php +119 -0
  21. package/server/src/Events/WaypointCompleted.php +119 -0
  22. package/server/src/Flow/Activity.php +28 -10
  23. package/server/src/Flow/Event.php +26 -2
  24. package/server/src/Http/Controllers/Api/v1/DriverController.php +19 -2
  25. package/server/src/Http/Controllers/Api/v1/OrderController.php +274 -164
  26. package/server/src/Http/Controllers/Internal/v1/OrderController.php +15 -8
  27. package/server/src/Http/Filter/OrderFilter.php +4 -4
  28. package/server/src/Http/Resources/v1/Payload.php +1 -1
  29. package/server/src/Listeners/HandleOrderCanceled.php +0 -10
  30. package/server/src/Listeners/NotifyOrderEvent.php +4 -4
  31. package/server/src/Models/OrderConfig.php +50 -35
  32. package/server/src/Models/Payload.php +26 -7
  33. package/server/src/Models/Waypoint.php +10 -0
  34. package/server/src/Notifications/OrderAssigned.php +3 -5
  35. package/server/src/Notifications/OrderCanceled.php +32 -12
  36. package/server/src/Notifications/OrderCompleted.php +31 -11
  37. package/server/src/Notifications/OrderDispatchFailed.php +3 -5
  38. package/server/src/Notifications/OrderDispatched.php +31 -11
  39. package/server/src/Notifications/OrderFailed.php +32 -12
  40. package/server/src/Notifications/OrderPing.php +2 -6
  41. package/server/src/Notifications/OrderSplit.php +1 -1
  42. package/server/src/Notifications/WaypointCompleted.php +157 -0
@@ -3,6 +3,7 @@
3
3
  namespace Fleetbase\FleetOps\Flow;
4
4
 
5
5
  use Fleetbase\FleetOps\Models\Order;
6
+ use Fleetbase\FleetOps\Models\Waypoint;
6
7
  use Fleetbase\FleetOps\Support\Utils;
7
8
  use Illuminate\Support\Str;
8
9
 
@@ -18,6 +19,11 @@ class Event
18
19
  */
19
20
  public ?Order $order = null;
20
21
 
22
+ /**
23
+ * The waypoint associated with the event, if any.
24
+ */
25
+ public ?Waypoint $waypoint = null;
26
+
21
27
  /**
22
28
  * The activity for the order event.
23
29
  */
@@ -29,11 +35,12 @@ class Event
29
35
  * @param string $name the name of the event
30
36
  * @param ?Order $order the associated order, if any
31
37
  */
32
- public function __construct(string $name, ?Order $order = null, ?Activity $activity = null)
38
+ public function __construct(string $name, ?Order $order = null, ?Activity $activity = null, ?Waypoint $waypoint = null)
33
39
  {
34
40
  $this->name = $name;
35
41
  $this->order = $order;
36
42
  $this->activity = $activity;
43
+ $this->waypoint = $waypoint;
37
44
  }
38
45
 
39
46
  /**
@@ -60,6 +67,18 @@ class Event
60
67
  return $this;
61
68
  }
62
69
 
70
+ /**
71
+ * Sets the waypoint for the order event.
72
+ *
73
+ * @param Waypoint $waypoint the waypoint assosciated to this event
74
+ */
75
+ public function setWaypoint(Waypoint $waypoint)
76
+ {
77
+ $this->waypoint = $waypoint;
78
+
79
+ return $this;
80
+ }
81
+
63
82
  /**
64
83
  * Triggers the event, optionally setting the order if not already set.
65
84
  *
@@ -69,7 +88,7 @@ class Event
69
88
  * @param ?Order $order optional order to associate with the event
70
89
  * @param ?Activity $activity optional activity which triggered the event
71
90
  */
72
- public function fire(?Order $order = null, ?Activity $activity = null)
91
+ public function fire(?Order $order = null, ?Activity $activity = null, ?Waypoint $waypoint = null)
73
92
  {
74
93
  if (!$this->order && $order instanceof Order) {
75
94
  $this->setOrder($order);
@@ -79,10 +98,15 @@ class Event
79
98
  $this->setActivity($activity);
80
99
  }
81
100
 
101
+ if ($waypoint) {
102
+ $this->setWaypoint($waypoint);
103
+ }
104
+
82
105
  $eventClass = $this->resolve();
83
106
  if ($eventClass) {
84
107
  $event = new $eventClass($this->order);
85
108
  $event->activity = $activity;
109
+ $event->waypoint = $waypoint;
86
110
  event($event);
87
111
  }
88
112
  }
@@ -535,15 +535,32 @@ class DriverController extends Controller
535
535
  return 'Your ' . data_get($company, 'name', config('app.name')) . ' verification code is ' . $verification->code;
536
536
  },
537
537
  ]);
538
+
539
+ return response()->json(['status' => 'OK', 'method' => 'sms']);
538
540
  } catch (\Throwable $e) {
539
541
  if (app()->bound('sentry')) {
540
542
  app('sentry')->captureException($e);
541
543
  }
542
544
 
543
- return response()->apiError('Unable to send SMS Verification code.');
545
+ // SEND VERIFICATION CODE BY EMAIL IF DRIVER HAS EMAIL ADDRESS
546
+ if ($user->email) {
547
+ try {
548
+ VerificationCode::generateEmailVerificationFor($user, 'driver_login', [
549
+ 'messageCallback' => function ($verification) use ($company) {
550
+ return 'Your ' . data_get($company, 'name', config('app.name')) . ' verification code is ' . $verification->code;
551
+ },
552
+ ]);
553
+
554
+ return response()->json(['status' => 'OK', 'method' => 'email']);
555
+ } catch (\Throwable $e) {
556
+ if (app()->bound('sentry')) {
557
+ app('sentry')->captureException($e);
558
+ }
559
+ }
560
+ }
544
561
  }
545
562
 
546
- return response()->json(['status' => 'OK']);
563
+ return response()->apiError('Unable to send SMS Verification code.');
547
564
  }
548
565
 
549
566
  /**