requireOwnedProjectId($request, $args); return $this->json($response, [ 'statuses' => array_map($this->present(...), $this->statuses->allForProject($projectId)), ]); } /** * @param array $args */ private function requireOwnedProjectId(Request $request, array $args): int { $project = $this->projects->findOwnedBy((int) $args['projectId'], $this->user($request)['id']); if ($project === null) { throw new ApiException('Project not found.', 404); } return $project['id']; } /** * @param array{id: int, project_id: int, name: string, position: int, created_at: string, updated_at: string} $status * @return array */ private function present(array $status): array { return [ 'id' => $status['id'], 'project_id' => $status['project_id'], 'name' => $status['name'], 'position' => $status['position'], ]; } }