Passed
Push — master ( f0727d...c8ad89 )
by Ostap
11:50
created

StudentVerificationController   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 18
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 15 3
1
<?php
2
3
namespace App\Http\Controllers\API;
4
5
use App\Http\Requests\StudentTokenRequest;
6
use App\Models\User;
7
use Illuminate\Validation\ValidationException;
8
use Spatie\RouteAttributes\Attributes\{Post, Prefix};
9
10
#[Prefix('/api/v1')]
11
final class StudentVerificationController
12
{
13
    #[Post('/students/verification')]
14
    public function __invoke(StudentTokenRequest $request)
15
    {
16
        $student = User::whereSlug($request->slug)->first();
17
18
        if (!$student || $student->verification_code !== $request->verification_code) {
19
            throw ValidationException::withMessages([
20
                'verification_code' => 'Verification code is invalid.'
21
            ]);
22
        }
23
24
        $student->verify();
25
26
        return [
27
            'token' => $student->createToken($request->userAgent())->plainTextToken
28
        ];
29
    }
30
}
31