Skip to content

Commit cde31f6

Browse files
fix: make cases jobs synchronous, update cases:sync participants
1 parent f2500ea commit cde31f6

5 files changed

Lines changed: 15 additions & 13 deletions

File tree

‎ProcessMaker/Http/Controllers/Api/TaskController.php‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,14 +322,14 @@ public function update(Request $request, ProcessRequestToken $task)
322322

323323
$taskRefreshed = $task->refresh();
324324

325-
CaseUpdate::dispatch($task->processRequest, $taskRefreshed);
325+
CaseUpdate::dispatchSync($task->processRequest, $taskRefreshed);
326326

327327
return new Resource($taskRefreshed);
328328
} else {
329329
return abort(422);
330330
}
331331
}
332-
332+
333333
public function updateReassign(Request $request)
334334
{
335335
$userToAssign = $request->input('user_id');
@@ -342,7 +342,7 @@ public function updateReassign(Request $request)
342342
//Reassign to the user.
343343
$processRequestToken->reassign($userToAssign, $request->user());
344344
$taskRefreshed = $processRequestToken->refresh();
345-
CaseUpdate::dispatch($processRequestToken->processRequest, $taskRefreshed);
345+
CaseUpdate::dispatchSync($processRequestToken->processRequest, $taskRefreshed);
346346
}
347347
}
348348
}

‎ProcessMaker/Repositories/CaseSyncRepository.php‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public static function syncCases(array $requestIds): array
4848
$caseStartedRequests = CaseUtils::storeRequests(collect(), $requestData);
4949
$caseStartedRequestTokens = collect();
5050
$caseStartedTasks = collect();
51-
$participants = $instance->participants->map->only('id', 'fullName', 'title', 'avatar');
51+
$participants = $instance->participants->pluck('id');
5252
$status = $instance->status === CaseStatusConstants::ACTIVE ? CaseStatusConstants::IN_PROGRESS : $instance->status;
5353

5454
$caseParticipatedData = self::prepareCaseStartedData($instance, $status, $participants);
@@ -214,8 +214,8 @@ private static function processChildRequests(
214214
$caseStartedRequests = CaseUtils::storeRequests($caseStartedRequests, $requestData);
215215

216216
$participants = $participants
217-
->merge($subProcess->participants->map->only('id', 'fullName', 'title', 'avatar'))
218-
->unique('id')
217+
->merge($subProcess->participants->pluck('id'))
218+
->unique()
219219
->values();
220220

221221
foreach ($subProcess->tokens as $spToken) {

‎ProcessMaker/Repositories/ExecutionInstanceRepository.php‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public function persistInstanceCreated(ExecutionInstanceInterface $instance)
186186
// Set id
187187
$instance->setId($instance->getKey());
188188

189-
CaseStore::dispatch($instance);
189+
CaseStore::dispatchSync($instance);
190190

191191
// Persists collaboration
192192
$this->persistCollaboration($instance);
@@ -213,7 +213,7 @@ public function persistInstanceError(ExecutionInstanceInterface $instance)
213213
$instance->mergeLatestStoredData();
214214
$instance->saveOrFail();
215215

216-
CaseUpdateStatus::dispatch($instance);
216+
CaseUpdateStatus::dispatchSync($instance);
217217
}
218218

219219
/**
@@ -238,6 +238,8 @@ public function persistInstanceUpdated(ExecutionInstanceInterface $instance)
238238
}
239239
$instance->mergeLatestStoredData();
240240
$instance->saveOrFail();
241+
242+
CaseUpdateStatus::dispatchSync($instance);
241243
}
242244

243245
/**
@@ -262,7 +264,7 @@ public function persistInstanceCompleted(ExecutionInstanceInterface $instance)
262264
$instance->mergeLatestStoredData();
263265
$instance->saveOrFail();
264266

265-
CaseUpdateStatus::dispatch($instance);
267+
CaseUpdateStatus::dispatchSync($instance);
266268
}
267269

268270
/**

‎ProcessMaker/Repositories/TokenRepository.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public function persistActivityActivated(ActivityInterface $activity, TokenInter
164164
$request = $token->getInstance();
165165
$request->notifyProcessUpdated('ACTIVITY_ACTIVATED', $token);
166166

167-
CaseUpdate::dispatch($request, $token);
167+
CaseUpdate::dispatchSync($request, $token);
168168

169169
if (!is_null($user)) {
170170
$this->validateAndSendActionByEmail($activity, $token, $user->email);

‎tests/Feature/Cases/CasesJobTest.php‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function test_handle_case_store_job()
2525
'user_id' => $user->id,
2626
]);
2727

28-
CaseStore::dispatch($instance);
28+
CaseStore::dispatchSync($instance);
2929

3030
Queue::assertPushed(CaseStore::class, 1);
3131
}
@@ -43,7 +43,7 @@ public function test_handle_case_update_job()
4343
'process_request_id' => $instance->id,
4444
]);
4545

46-
CaseUpdate::dispatch($instance, $token);
46+
CaseUpdate::dispatchSync($instance, $token);
4747

4848
Queue::assertPushed(CaseUpdate::class, 1);
4949
}
@@ -61,7 +61,7 @@ public function test_handle_case_update_status_job()
6161
'process_request_id' => $instance->id,
6262
]);
6363

64-
CaseUpdateStatus::dispatch($instance, $token);
64+
CaseUpdateStatus::dispatchSync($instance, $token);
6565

6666
Queue::assertPushed(CaseUpdateStatus::class, 1);
6767
}

0 commit comments

Comments
 (0)