feat(api): complete M5 swap and dispatch backend slice
This commit is contained in:
@@ -10,7 +10,9 @@ import {
|
||||
assignHubManager,
|
||||
assignHubNfc,
|
||||
cancelLateWorker,
|
||||
cancelShiftSwapRequest,
|
||||
cancelClientOrder,
|
||||
createDispatchTeamMembership,
|
||||
createEmergencyContact,
|
||||
createClientOneTimeOrder,
|
||||
createClientPermanentOrder,
|
||||
@@ -24,6 +26,8 @@ import {
|
||||
rateWorkerFromCoverage,
|
||||
registerClientPushToken,
|
||||
registerStaffPushToken,
|
||||
removeDispatchTeamMembership,
|
||||
resolveShiftSwapRequest,
|
||||
requestShiftSwap,
|
||||
saveTaxFormDraft,
|
||||
setupStaffProfile,
|
||||
@@ -55,6 +59,8 @@ import {
|
||||
clientPermanentOrderSchema,
|
||||
clientRecurringOrderSchema,
|
||||
coverageReviewSchema,
|
||||
dispatchTeamMembershipCreateSchema,
|
||||
dispatchTeamMembershipDeleteSchema,
|
||||
emergencyContactCreateSchema,
|
||||
emergencyContactUpdateSchema,
|
||||
hubAssignManagerSchema,
|
||||
@@ -73,6 +79,8 @@ import {
|
||||
shiftManagerCreateSchema,
|
||||
shiftApplySchema,
|
||||
shiftDecisionSchema,
|
||||
shiftSwapCancelSchema,
|
||||
shiftSwapResolveSchema,
|
||||
shiftSubmitApprovalSchema,
|
||||
staffClockInSchema,
|
||||
staffClockOutSchema,
|
||||
@@ -90,7 +98,9 @@ const defaultHandlers = {
|
||||
assignHubManager,
|
||||
assignHubNfc,
|
||||
cancelLateWorker,
|
||||
cancelShiftSwapRequest,
|
||||
cancelClientOrder,
|
||||
createDispatchTeamMembership,
|
||||
createEmergencyContact,
|
||||
createClientOneTimeOrder,
|
||||
createClientPermanentOrder,
|
||||
@@ -104,6 +114,8 @@ const defaultHandlers = {
|
||||
rateWorkerFromCoverage,
|
||||
registerClientPushToken,
|
||||
registerStaffPushToken,
|
||||
removeDispatchTeamMembership,
|
||||
resolveShiftSwapRequest,
|
||||
requestShiftSwap,
|
||||
saveTaxFormDraft,
|
||||
setupStaffProfile,
|
||||
@@ -301,6 +313,41 @@ export function createMobileCommandsRouter(handlers = defaultHandlers) {
|
||||
paramShape: (req) => ({ ...req.body, assignmentId: req.params.assignmentId }),
|
||||
}));
|
||||
|
||||
router.post(...mobileCommand('/client/coverage/swap-requests/:swapRequestId/resolve', {
|
||||
schema: shiftSwapResolveSchema,
|
||||
policyAction: 'client.coverage.write',
|
||||
resource: 'shift_swap_request',
|
||||
handler: handlers.resolveShiftSwapRequest,
|
||||
paramShape: (req) => ({ ...req.body, swapRequestId: req.params.swapRequestId }),
|
||||
}));
|
||||
|
||||
router.post(...mobileCommand('/client/coverage/swap-requests/:swapRequestId/cancel', {
|
||||
schema: shiftSwapCancelSchema,
|
||||
policyAction: 'client.coverage.write',
|
||||
resource: 'shift_swap_request',
|
||||
handler: handlers.cancelShiftSwapRequest,
|
||||
paramShape: (req) => ({ ...req.body, swapRequestId: req.params.swapRequestId }),
|
||||
}));
|
||||
|
||||
router.post(...mobileCommand('/client/coverage/dispatch-teams/memberships', {
|
||||
schema: dispatchTeamMembershipCreateSchema,
|
||||
policyAction: 'client.coverage.write',
|
||||
resource: 'dispatch_team',
|
||||
handler: handlers.createDispatchTeamMembership,
|
||||
}));
|
||||
|
||||
router.delete(...mobileCommand('/client/coverage/dispatch-teams/memberships/:membershipId', {
|
||||
schema: dispatchTeamMembershipDeleteSchema,
|
||||
policyAction: 'client.coverage.write',
|
||||
resource: 'dispatch_team',
|
||||
handler: handlers.removeDispatchTeamMembership,
|
||||
paramShape: (req) => ({
|
||||
...req.body,
|
||||
membershipId: req.params.membershipId,
|
||||
reason: req.body?.reason || req.query.reason,
|
||||
}),
|
||||
}));
|
||||
|
||||
router.post(...mobileCommand('/staff/profile/setup', {
|
||||
schema: staffProfileSetupSchema,
|
||||
policyAction: 'staff.profile.write',
|
||||
|
||||
Reference in New Issue
Block a user