Passed
Push — dev ( bc73f2...0828b1 )
by Darko
07:58
created

ApiInformController   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 12
eloc 14
c 1
b 0
f 0
dl 0
loc 30
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
C release() 0 21 12
1
<?php
2
3
namespace App\Http\Controllers\Api;
4
5
use App\Http\Controllers\Controller;
6
use App\Models\Release;
7
use App\Models\ReleaseInform;
8
use App\Models\User;
9
use Blacklight\NameFixer;
10
use Illuminate\Http\Request;
11
12
class ApiInformController extends Controller
13
{
14
    /**
15
     * http://sitename/api/inform/release?api_token=xxxxx&relo=xxx&relp=xxx.
16
     *
17
     * @param \Illuminate\Http\Request $request
18
     * @return \Illuminate\Http\JsonResponse
19
     * @throws \Exception
20
     */
21
    public function release(Request $request)
22
    {
23
        $releaseObName = $request->has('relo') && ! empty($request->input('relo')) ? $request->input('relo') : '';
24
        $releasePrName = $request->has('relp') && ! empty($request->input('relp')) ? $request->input('relp') : '';
25
        $apiToken = $request->has('api_token') && ! empty($request->input('api_token')) ? $request->input('api_token') : '';
26
        $user = User::query()->where('api_token', $request->input('api_token'))->first();
27
        if (! $user) {
28
            return response()->json(['message' => 'Indexer inform error, wrong api key!'], 404);
29
        }
30
31
        if (! empty($releaseObName) && ! empty($releasePrName) && ! empty($apiToken)) {
32
            ReleaseInform::insertOrIgnore(['relOName' => $releaseObName, 'relPName' => $releasePrName, 'api_token' => $apiToken, 'created_at' => now(), 'updated_at' => now()]);
33
            $release = Release::whereSearchname($releaseObName)->first();
34
            if (! empty($release)) {
35
                (new NameFixer())->updateRelease($release, $releasePrName, 'Release Inform API', true, 'Filenames, ', 1, true);
36
            }
37
38
            return response()->json(['message' => 'Release Information Added!'], 200);
39
        }
40
41
        return response()->json(['message' => 'Indexer inform error, wrong data supplied!'], 404);
42
    }
43
}
44