Passed
Push — dev ( 48fd2d...413832 )
by Mattia
03:24
created

SkinFrontController   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A serve() 0 17 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\Http\Controllers\Api;
6
7
use Illuminate\Http\Request;
8
use Illuminate\Http\Response;
9
10
/**
11
 * Class BaseApiController.
12
 */
13
class SkinFrontController extends BaseApiController
14
{
15
    /**
16
     * Serve Avatar.
17
     *
18
     * @param \Illuminate\Http\Request
19
     * @param string $uuidOrName
20
     * @param int    $size
21
     *
22
     * @return Response
23
     *
24
     * @throws \Throwable
25
     */
26
    public function serve(Request $request, $uuidOrName = '', $size = 0): Response
27
    {
28
        $size = (int) $size;
29
        $this->minepic->initialize($uuidOrName);
30
        $headers = $this->minepic->generateHttpCacheHeaders($size, 'avatar');
31
        $this->minepic->updateStats();
32
33
        if ($request->server('HTTP_IF_MODIFIED_SINCE')) {
34
            $avatarImage = '';
35
            $httpCode = 304;
36
        } else {
37
            $avatarImage = $this->minepic->renderSkinCurrentUser($size, 'F');
38
            $httpCode = 200;
39
            $headers['Content-Type'] = 'image/png';
40
        }
41
42
        return $this->responseFactory->make($avatarImage, $httpCode, $headers);
43
    }
44
}
45