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

FileTeamUploader   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A uploadCoverIfExists() 0 14 4
A uploadIfExists() 0 12 5
A uploadLogoIfExists() 0 14 4
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