<?php
namespace App\Controller\Admin\api\V1;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
/**
* Admin API Course Controller.
* @Route("/admin/api/v1/course/")
* @IsGranted("ROLE_ADMIN")
*/
class CourseController extends AbstractController {
/**
* Search for Courses by Title.
* @Route("searchCourse", name="api-admin-search-courses", methods={"GET"})
*/
public function searchCourse(
Request $request,
\App\Repository\Admin\CourseRepository $courseRepository
): Response {
$coursesData = $courseRepository->findBy(['title' => $request->get('title')->getData()]);
$data = [];
foreach ($coursesData as $course) :
$data[] = [
"name" => $course->getTitle(),
"code" => $course->getCode(),
"id" => $course->getID()
];
endforeach;
return $this->json($data, Response::HTTP_OK, []);
}
/**
* Available Courses for Client.
* @Route("clientCourses", name="api-admin-available-client-courses", methods={"GET"})
*/
public function clientCourses(
Request $request,
\App\Repository\Admin\CourseRepository $courseRepository
): Response {
$coursesData = $courseRepository->findBy(['isEnabled' => true]);
$data = [];
foreach ($coursesData as $course) :
$data[] = [
"name" => $course->getTitle(),
"id" => $course->getID()
];
endforeach;
return $this->json($data, Response::HTTP_OK, []);
}
/**
* Available CareerPaths for Client.
* @Route("clientCareerPaths", name="api-admin-available-client-career-paths", methods={"GET"})
*/
public function clientCareerPaths(
Request $request,
\App\Repository\Admin\CareerPathRepository $careerPathRepository
): Response {
$careerPathData = $careerPathRepository->findBy(['isEnabled' => true]);
$data = [];
foreach ($careerPathData as $course) :
$data[] = [
"name" => $course->getTitle(),
"id" => $course->getID()
];
endforeach;
return $this->json($data, Response::HTTP_OK, []);
}
}