Passed
Push — dev ( 865032...353ead )
by Mattia
03:59
created

BaseApiController::pngResponse()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\Http\Controllers\Api;
6
7
use App\Core as MinepicCore;
8
use App\Models\Account;
9
use Illuminate\Http\Request;
10
use Illuminate\Http\Response;
11
use Laravel\Lumen\Http\ResponseFactory;
12
use Laravel\Lumen\Routing\Controller as BaseController;
13
14
/**
15
 * Class BaseApiController.
16
 */
17
abstract class BaseApiController extends BaseController
18
{
19
    /**
20
     * @var MinepicCore
21
     */
22
    protected $minepic;
23
24
    /** @var ResponseFactory */
25
    protected $responseFactory;
26
27
    /**
28
     * Api constructor.
29
     *
30
     * @param MinepicCore     $minepic         Minepic Core Instance
31
     * @param ResponseFactory $responseFactory Response Factory
32
     */
33
    public function __construct(
34
        MinepicCore $minepic,
35
        ResponseFactory $responseFactory
36
    ) {
37
        $this->minepic = $minepic;
38
        $this->responseFactory = $responseFactory;
39
    }
40
41
    /**
42
     * @param Request $request    Injected Request
43
     * @param string  $uuidOrName
44
     * @param int     $size       Avatar size User UUID or name
45
     *
46
     * @return Response
47
     */
48
    abstract public function serve(Request $request, $uuidOrName = '', $size = 0): Response;
49
50
    /**
51
     * Isometric Avatar with Size.
52
     *
53
     * @param Request $request    Injected Request
54
     * @param int     $size       Avatar size
55
     * @param string  $uuidOrName User UUID or name
56
     *
57
     * @return Response
58
     */
59
    public function serveWithSize(Request $request, $size = 0, $uuidOrName = ''): Response
60
    {
61
        return $this->serve($request, $uuidOrName, $size);
62
    }
63
64
    public function pngResponse(string $image)
65
    {
66
        return $this->responseFactory->make($image, Response::HTTP_OK, ['Content-Type' => 'image/png']);
67
    }
68
}
69