bajapro/Penilaian-Esai/app/Http/Controllers/API/CourseAPIController.php
2025-06-07 16:18:13 +07:00

132 lines
3.1 KiB
PHP

<?php
namespace App\Http\Controllers\API;
use App\Http\Requests\API\CreateCourseAPIRequest;
use App\Http\Requests\API\UpdateCourseAPIRequest;
use App\Models\Course;
use App\Repositories\CourseRepository;
use Illuminate\Http\Request;
use App\Http\Controllers\AppBaseController;
use Response;
/**
* Class CourseController
* @package App\Http\Controllers\API
*/
class CourseAPIController extends AppBaseController
{
/** @var CourseRepository */
private $courseRepository;
public function __construct(CourseRepository $courseRepo)
{
$this->courseRepository = $courseRepo;
}
/**
* Display a listing of the Course.
* GET|HEAD /courses
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$courses = $this->courseRepository->all(
$request->except(['skip', 'limit']),
$request->get('skip'),
$request->get('limit')
);
return $this->sendResponse($courses->toArray(), 'Courses retrieved successfully');
}
/**
* Store a newly created Course in storage.
* POST /courses
*
* @param CreateCourseAPIRequest $request
*
* @return Response
*/
public function store(CreateCourseAPIRequest $request)
{
$input = $request->all();
$course = $this->courseRepository->create($input);
return $this->sendResponse($course->toArray(), 'Course saved successfully');
}
/**
* Display the specified Course.
* GET|HEAD /courses/{id}
*
* @param int $id
*
* @return Response
*/
public function show($id)
{
/** @var Course $course */
$course = $this->courseRepository->find($id);
if (empty($course)) {
return $this->sendError('Course not found');
}
return $this->sendResponse($course->toArray(), 'Course retrieved successfully');
}
/**
* Update the specified Course in storage.
* PUT/PATCH /courses/{id}
*
* @param int $id
* @param UpdateCourseAPIRequest $request
*
* @return Response
*/
public function update($id, UpdateCourseAPIRequest $request)
{
$input = $request->all();
/** @var Course $course */
$course = $this->courseRepository->find($id);
if (empty($course)) {
return $this->sendError('Course not found');
}
$course = $this->courseRepository->update($input, $id);
return $this->sendResponse($course->toArray(), 'Course updated successfully');
}
/**
* Remove the specified Course from storage.
* DELETE /courses/{id}
*
* @param int $id
*
* @throws \Exception
*
* @return Response
*/
public function destroy($id)
{
/** @var Course $course */
$course = $this->courseRepository->find($id);
if (empty($course)) {
return $this->sendError('Course not found');
}
$course->delete();
return $this->sendSuccess('Course deleted successfully');
}
}