@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.
- package/addon/components/activity-event-selector.js +4 -0
- package/addon/components/display-place.hbs +27 -3
- package/addon/components/route-list.hbs +3 -3
- package/addon/controllers/operations/orders/index.js +0 -4
- package/addon/routes/operations/orders/index/view.js +18 -1
- package/addon/services/movement-tracker.js +1 -1
- package/addon/styles/fleetops-engine.css +7 -0
- package/addon/templates/operations/orders/index/new.hbs +2 -2
- package/addon/templates/operations/orders/index/view.hbs +5 -1
- package/addon/templates/operations/orders/index.hbs +6 -1
- package/addon/templates/settings/notifications.hbs +9 -1
- package/composer.json +1 -1
- package/extension.json +1 -1
- package/package.json +1 -1
- package/server/src/Console/Commands/TrackOrderDistanceAndTime.php +2 -2
- package/server/src/Events/OrderCanceled.php +6 -0
- package/server/src/Events/OrderCompleted.php +6 -0
- package/server/src/Events/OrderDispatched.php +6 -0
- package/server/src/Events/OrderFailed.php +6 -0
- package/server/src/Events/WaypointActivityChanged.php +119 -0
- package/server/src/Events/WaypointCompleted.php +119 -0
- package/server/src/Flow/Activity.php +28 -10
- package/server/src/Flow/Event.php +26 -2
- package/server/src/Http/Controllers/Api/v1/DriverController.php +19 -2
- package/server/src/Http/Controllers/Api/v1/OrderController.php +274 -164
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +15 -8
- package/server/src/Http/Filter/OrderFilter.php +4 -4
- package/server/src/Http/Resources/v1/Payload.php +1 -1
- package/server/src/Listeners/HandleOrderCanceled.php +0 -10
- package/server/src/Listeners/NotifyOrderEvent.php +4 -4
- package/server/src/Models/OrderConfig.php +50 -35
- package/server/src/Models/Payload.php +26 -7
- package/server/src/Models/Waypoint.php +10 -0
- package/server/src/Notifications/OrderAssigned.php +3 -5
- package/server/src/Notifications/OrderCanceled.php +32 -12
- package/server/src/Notifications/OrderCompleted.php +31 -11
- package/server/src/Notifications/OrderDispatchFailed.php +3 -5
- package/server/src/Notifications/OrderDispatched.php +31 -11
- package/server/src/Notifications/OrderFailed.php +32 -12
- package/server/src/Notifications/OrderPing.php +2 -6
- package/server/src/Notifications/OrderSplit.php +1 -1
- 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
|
-
|
|
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()->
|
|
563
|
+
return response()->apiError('Unable to send SMS Verification code.');
|
|
547
564
|
}
|
|
548
565
|
|
|
549
566
|
/**
|