Ajout endpoint API /projects + fixtures Project
This commit is contained in:
47
backend/src/Controller/ProjectController.php
Normal file
47
backend/src/Controller/ProjectController.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Project;
|
||||
use App\Http\DataResponse;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
|
||||
class ProjectController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Route("/api/v1/projects", name="api_v1_list_projects")
|
||||
*/
|
||||
public function listProjects()
|
||||
{
|
||||
/** @var array */
|
||||
$projects = $this->getDoctrine()
|
||||
->getRepository(Project::class)
|
||||
->findAll()
|
||||
;
|
||||
|
||||
$results = [];
|
||||
foreach($projects as $p) {
|
||||
$project = [
|
||||
'id' => $p->getId(),
|
||||
'name' => $p->getName(),
|
||||
];
|
||||
|
||||
$project['users'] = $p->getUsers()->map(function($user) {
|
||||
return ['id' => $user->getId(), 'username' => $user->getUsername()];
|
||||
})->toArray();
|
||||
|
||||
$project['requests'] = $p->getRequests()->map(function($req) {
|
||||
return ['id' => $req->getId()];
|
||||
})->toArray();
|
||||
|
||||
|
||||
$results[] = $project;
|
||||
}
|
||||
|
||||
return new DataResponse([
|
||||
'projects' => $results,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user