Passed
Push — master ( b831b6...96f132 )
by John
06:04 queued 21s
created

DojoController   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 16
dl 0
loc 27
rs 10
c 1
b 0
f 1
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A complete() 0 24 3
1
<?php
2
3
namespace App\Http\Controllers\Ajax;
4
5
use App\Http\Controllers\Controller;
6
use App\Models\ResponseModel;
7
use App\Models\Eloquent\Dojo\DojoPass;
8
use App\Models\Eloquent\Dojo\Dojo;
9
use Illuminate\Http\Request;
10
use Auth;
11
use Throwable;
12
13
class DojoController extends Controller
14
{
15
16
    public function complete(Request $request)
17
    {
18
        $request->validate([
19
            "dojo_id" => "required|integer"
20
        ]);
21
22
        $dojo_id = $request->input('dojo_id');
23
24
        try {
25
            if (!Dojo::findOrFail($dojo_id)->canPass()) {
26
                return ResponseModel::err(10001);
27
            }
28
        }catch(Throwable $e){
29
            return ResponseModel::err(10002);
30
        }
31
32
        $user_id = Auth::user()->id;
33
        $dojoRecord = DojoPass::firstOrCreate([
34
            'dojo_id' => $dojo_id,
35
            'user_id' => $user_id,
36
        ]);
37
        $dojoRecord->save();
38
        return ResponseModel::success(200, null, [
39
            'id' => $dojoRecord->id
40
        ]);
41
    }
42
}
43