Passed
Push — develop ( bee1f5...82de8e )
by Nikita
06:30
created

ServersController::updateBulk()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Gameap\Http\Controllers\GdaemonAPI;
4
5
use Gameap\Models\Server;
6
use Gameap\Models\DedicatedServer;
7
use Gameap\Repositories\ServerRepository;
8
use Spatie\QueryBuilder\QueryBuilder;
9
use Gameap\Http\Requests\GdaemonAPI\ServerRequest;
10
use Gameap\Http\Requests\GdaemonAPI\ServerBulkRequest;
11
use Illuminate\Http\Response;
12
use Batch;
13
14
class ServersController extends Controller
15
{
16
    /**
17
     * @var ServerRepository
18
     */
19
    protected $repository;
20
21
    /**
22
     * ServersController constructor.
23
     * @param ServerRepository $serverRepository
24
     */
25
    public function __construct(ServerRepository $serverRepository)
26
    {
27
        parent::__construct();
28
29
        $this->repository = $serverRepository;
30
    }
31
32
    /**
33
     * @param DedicatedServer $dedicatedServer
34
     * @return mixed
35
     */
36
    public function index(DedicatedServer $dedicatedServer)
37
    {
38
        return QueryBuilder::for(Server::where('ds_id', $dedicatedServer->id))
0 ignored issues
show
Bug introduced by
Gameap\Models\Server::wh..., $dedicatedServer->id) of type Illuminate\Database\Eloquent\Builder is incompatible with the type Illuminate\Database\Query\Builder|string expected by parameter $baseQuery of Spatie\QueryBuilder\QueryBuilder::for(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

38
        return QueryBuilder::for(/** @scrutinizer ignore-type */ Server::where('ds_id', $dedicatedServer->id))
Loading history...
39
            ->allowedFilters('id')
40
            ->get();
41
    }
42
43
    /**
44
     * @param Server $server
45
     * @return Server
46
     */
47
    public function server(Server $server)
48
    {
49
        // Get Relations
50
        $server->getRelationValue('game');
51
        $server->getRelationValue('gameMod');
52
53
        return response()->json($server);
0 ignored issues
show
Bug Best Practice introduced by
The expression return response()->json($server) returns the type Illuminate\Http\JsonResponse which is incompatible with the documented return type Gameap\Models\Server.
Loading history...
54
    }
55
56
    /**
57
     * @param Server $server
58
     * @return \Illuminate\Http\JsonResponse
59
     */
60
    public function update(ServerRequest $request, Server $server)
61
    {
62
        $server->forceFill($request->only(['installed', 'process_active', 'last_process_check']));
63
        $server->save();
64
65
        return response()->json(['message' => 'success'], Response::HTTP_OK);
66
    }
67
68
    /**
69
     * @param ServerBulkRequest $request
70
     * @return \Illuminate\Http\JsonResponse
71
     */
72
    public function updateBulk(ServerBulkRequest $request)
73
    {
74
        $values = $request->json()->all();
75
        Batch::update(new Server, $values, 'id');
76
77
        return response()->json(['message' => 'success'], Response::HTTP_OK);
78
    }
79
}