Completed
Branch develop (e10164)
by Benjamin
04:56
created

FileTeamUploader::uploadIfExists()   A

Complexity

Conditions 5
Paths 4

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 12
rs 9.6111
cc 5
nc 4
nop 3
1
<?php
2
3
namespace Obblm\Core\Service;
4
5
use Obblm\Core\Entity\Team;
6
use Obblm\Core\Helper\FileUploader\AbstractFileUploader;
7
use Obblm\Core\Helper\FileUploader\FileUploaderInterface;
8
use Symfony\Component\HttpFoundation\File\File;
9
10
class FileTeamUploader extends AbstractFileUploader implements FileUploaderInterface
11
{
12
    /**
13
     * @param $object
14
     * @param $field
15
     * @param $file
16
     * @return File|null
17
     */
18
    public function uploadIfExists($object, $file, $field)
19
    {
20
        if (!$object instanceof Team || !$file) {
21
            return null;
22
        }
23
        if ($field === 'logo') {
24
            return $this->uploadLogoIfExists($object, $file);
25
        }
26
        if ($field === 'cover') {
27
            return $this->uploadCoverIfExists($object, $file);
28
        }
29
        return null;
30
    }
31
32
    public function uploadLogoIfExists(Team $object, $logoFile):?File
33
    {
34
        if ($logoFile) {
35
            $this->setObjectSubDirectory($object->getId());
36
            if ($logo = $this->upload($logoFile)) {
37
                if ($object->getLogoFilename()) {
38
                    $this->removeOldFile($object->getLogoFilename());
39
                }
40
                $object->setLogoFilename($logo->getFilename());
41
                $object->setLogoMimeType($logo->getMimeType());
42
                return $logo;
43
            }
44
        }
45
        return null;
46
    }
47
    public function uploadCoverIfExists(Team $object, $coverFile):?File
48
    {
49
        if ($coverFile) {
50
            $this->setObjectSubDirectory($object->getId());
51
            if ($cover = $this->upload($coverFile)) {
52
                if ($object->getCoverFilename()) {
53
                    $this->removeOldFile($object->getCoverFilename());
54
                }
55
                $object->setCoverFilename($cover->getFilename());
56
                $object->setCoverMimeType($cover->getMimeType());
57
                return $cover;
58
            }
59
        }
60
        return null;
61
    }
62
}
63