Passed
Pull Request — master (#105)
by Nikita
06:35
created

ClientCertificatesController::store()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 2
c 2
b 0
f 0
dl 0
loc 5
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Gameap\Http\Controllers\API;
4
5
use Gameap\Http\Controllers\AuthController;
0 ignored issues
show
Bug introduced by
This use statement conflicts with another class in this namespace, Gameap\Http\Controllers\API\AuthController. Consider defining an alias.

Let?s assume that you have a directory layout like this:

.
|-- OtherDir
|   |-- Bar.php
|   `-- Foo.php
`-- SomeDir
    `-- Foo.php

and let?s assume the following content of Bar.php:

// Bar.php
namespace OtherDir;

use SomeDir\Foo; // This now conflicts the class OtherDir\Foo

If both files OtherDir/Foo.php and SomeDir/Foo.php are loaded in the same runtime, you will see a PHP error such as the following:

PHP Fatal error:  Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php

However, as OtherDir/Foo.php does not necessarily have to be loaded and the error is only triggered if it is loaded before OtherDir/Bar.php, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias:

// Bar.php
namespace OtherDir;

use SomeDir\Foo as SomeDirFoo; // There is no conflict anymore.
Loading history...
6
use Gameap\Http\Requests\ClientCertificatesRequest;
7
use Gameap\Models\ClientCertificate;
8
use Gameap\Repositories\ClientCertificateRepository;
9
10
class ClientCertificatesController extends AuthController
11
{
12
    /**
13
     * The ClientCertificateRepository instance.
14
     *
15
     * @var \Gameap\Repositories\ClientCertificateRepository
16
     */
17
    protected $repository;
18
19
    /**
20
     * Create a new ClientCertificatesController instance.
21
     *
22
     * @param  \Gameap\Repositories\ClientCertificateRepository $repository
23
     */
24
    public function __construct(ClientCertificateRepository $repository)
25
    {
26
        parent::__construct();
27
28
        $this->repository = $repository;
29
    }
30
31
    /**
32
     * Display a listing of the resource.
33
     *
34
     * @return \Illuminate\View\View
35
     */
36
    public function list()
37
    {
38
        $clientCertificates = $this->repository->getAll(99999);
39
40
        return $clientCertificates->map(function ($item) {
0 ignored issues
show
Bug Best Practice introduced by
The expression return $clientCertificat...ion(...) { /* ... */ }) returns the type Illuminate\Support\Collection which is incompatible with the documented return type Illuminate\View\View.
Loading history...
41
            return $item->only([
42
                'id',
43
                'fingerprint',
44
                'expires',
45
                'info',
46
            ]);
47
        });
48
    }
49
50
    public function store(ClientCertificatesRequest $request)
51
    {
52
        $this->repository->store($request);
53
54
        return ['message' => 'success'];
55
    }
56
57
    public function destroy($id)
58
    {
59
        $clientCertificate = $this->repository->findById($id);
60
61
        $this->repository->destroy($clientCertificate);
62
63
        return ['message' => 'success'];
64
    }
65
}