-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdminCourseRegistrationController.php
38 lines (31 loc) · 1.45 KB
/
AdminCourseRegistrationController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
namespace App\Http\Controllers\CourseRegistration;
use App\Http\Controllers\Controller;
use App\Http\Requests\CourseRegistration\StoreCourseRegistrationRequest;
use App\Http\Resources\CourseRegistration\CourseRegistrationCollection;
use App\Http\Resources\CourseRegistration\CourseRegistrationResource;
use App\Http\Resources\CourseUserResource;
use App\Models\CourseRegistration;
use App\Services\CourseRegistrationService;
use Illuminate\Http\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
class AdminCourseRegistrationController extends Controller
{
public function __construct(protected CourseRegistrationService $courseRegistrationService) {}
public function index(): CourseRegistrationCollection
{
return new CourseRegistrationCollection($this->courseRegistrationService->index());
}
public function store(StoreCourseRegistrationRequest $request): CourseUserResource
{
return new CourseUserResource($this->courseRegistrationService->store($request->getRegistration()));
}
public function accept(CourseRegistration $courseRegistration): CourseRegistrationResource
{
return new CourseRegistrationResource($this->courseRegistrationService->accept($courseRegistration));
}
public function decline(CourseRegistration $courseRegistration): CourseRegistrationResource
{
return new CourseRegistrationResource($this->courseRegistrationService->decline($courseRegistration));
}
}