Skip to content
24 changes: 23 additions & 1 deletion ProcessMaker/Http/Controllers/Api/ProcessLaunchpadController.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
use ProcessMaker\Models\Media;
use ProcessMaker\Models\Process;
use ProcessMaker\Models\ProcessLaunchpad;
use ProcessMaker\Models\ProcessRequest;

class ProcessLaunchpadController extends Controller
{
Expand Down Expand Up @@ -60,6 +61,23 @@ public function getProcesses(Request $request)
return new ProcessCollection($processes);
}

protected function getCounts($processId)
{
$result = ProcessRequest::where('process_id', $processId)
->selectRaw('status, count(*) as count')
->groupBy('status')
->get();

$completed = $result->where('status', 'COMPLETED')->first()->count;
$in_progress = $result->where('status', 'ACTIVE')->first()->count;

return [
'completed' => $completed,
'in_progress' => $in_progress,
'total' => $completed + $in_progress,
];
}

/**
* Get the size of the page.
* per_page=# (integer, the page requested) (Default: 10).
Expand All @@ -86,7 +104,11 @@ public function index(Request $request, Process $process)
}])
->where('id', $process->id)
->get()
->toArray();
->map(function ($process) {
$process->counts = $this->getCounts($process->id);

return $process;
});

return new ApiResource($processes);
}
Expand Down
Loading