Base du projet 'application ticketing'

This commit is contained in:
2020-02-17 22:28:57 +01:00
parent 2a72ac97ac
commit afa734f96d
64 changed files with 1798 additions and 685 deletions

View File

@ -1,33 +0,0 @@
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
class ApiController
{
public function login()
{
return new JsonResponse([
]);
}
public function logout()
{
return new JsonResponse([
]);
}
public function showVersionInfo()
{
return new JsonResponse([
'version' => '1',
]);
}
public function listUsers()
{
return new JsonResponse([]);
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace App\Controller;
use App\Http\DataResponse;
use Symfony\Component\Routing\Annotation\Route;
class IndexController
{
/**
* @Route("/api/v1", name="api_v1_index")
*/
public function showAPIV1Index()
{
return new DataResponse([
'version' => '1',
]);
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace App\Controller;
use App\Http\DataResponse;
use Symfony\Component\Routing\Annotation\Route;
class RequestController
{
/**
* @Route("/api/v1/request", name="api_v1_list_requests")
*/
public function listRequests()
{
return new DataResponse([]);
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Controller;
use App\Http\DataResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class SecurityController extends Controller
{
/**
* @Route("/api/v1/login", name="api_v1_login", methods={"POST"})
*/
public function login(Request $request)
{
$user = $this->getUser();
return new DataResponse([
'username' => $user->getUsername(),
'roles' => $user->getRoles(),
]);
}
}

View File

@ -0,0 +1,72 @@
<?php
namespace App\Controller;
use App\Entity\User;
use App\Http\DataResponse;
use App\Repository\UserRepository;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
class UserController extends Controller
{
/**
* @Route("/api/v1/me", name="api_v1_users_me", methods={"GET"})
* @IsGranted("ROLE_USER")
*/
public function showCurrentUser()
{
/** @var User */
$user = $this->getUser();
return new DataResponse([
'username' => $user->getUsername(),
'roles' => $user->getRoles(),
]);
}
/**
* @Route("/api/v1/users", name="api_v1_list_users", methods={"GET"})
* @IsGranted("ROLE_DEVELOPER")
*/
public function listUsers()
{
/** @var array */
$users = $this->getDoctrine()
->getRepository(User::class)
->findAll()
;
$results = [];
foreach($users as $u) {
$results[] = [
'id' => $u->getId(),
'username' => $u->getUsername(),
];
}
return new DataResponse([
'users' => $results,
]);
}
/**
* @Route("/api/v1/users/{userId}", name="api_v1_get_user", methods={"GET"}, requirements={"userId"="\d+"})
* @IsGranted("ROLE_DEVELOPER")
*/
public function showUser($userId)
{
/** @var User */
$user = $this->getDoctrine()
->getRepository(User::class)
->find($userId)
;
return new DataResponse([
'user' => [
'id' => $user->getId(),
'username' => $user->getUsername(),
]
]);
}
}