Completed
Push — master ( ec7d58...d2da01 )
by Innocent
04:23
created

DiscussionObserver::created()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Faithgen\Discussions\Observers;
4
5
use Faithgen\Discussions\Jobs\ProcessImages;
6
use Faithgen\Discussions\Jobs\S3Upload;
7
use Faithgen\Discussions\Jobs\UploadImages;
8
use Faithgen\Discussions\Models\Discussion;
9
use FaithGen\SDK\Models\User;
10
use FaithGen\SDK\Traits\FileTraits;
11
12
class DiscussionObserver
13
{
14
    use FileTraits;
15
16
    private array $levels = [
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_ARRAY, expecting T_FUNCTION or T_CONST
Loading history...
17
        'Free'        => false,
18
        'Premium'     => true,
19
        'PremiumPlus' => true,
20
    ];
21
22
    /**
23
     * Handle the discussion "created" event.
24
     *
25
     * @param  Discussion  $discussion
26
     *
27
     * @return void
28
     */
29
    public function created(Discussion $discussion)
30
    {
31
        if ($this->levels[auth()->user()->account->level] && request()->has('images')) {
32
            if (is_string(request('images'))) {
33
                $images = json_decode(request('images'), true);
34
            } else {
35
                $images = request('images');
36
            }
37
38
            UploadImages::withChain([
39
                new ProcessImages($discussion),
40
                new S3Upload($discussion),
41
            ])->dispatch($discussion, $images);
42
        }
43
    }
44
45
    /**
46
     * Handle the discussion "updated" event.
47
     *
48
     * @param  Discussion  $discussion
49
     *
50
     * @return void
51
     */
52
    public function updated(Discussion $discussion)
53
    {
54
        //
55
    }
56
57
    /**
58
     * Handle the discussion "deleted" event.
59
     *
60
     * @param  Discussion  $discussion
61
     *
62
     * @return void
63
     */
64
    public function deleted(Discussion $discussion)
65
    {
66
        if ($discussion->images) {
67
            $this->deleteFiles($discussion);
68
        }
69
    }
70
71
    /**
72
     * Converts data when a discussion is being created.
73
     *
74
     * @param  Discussion  $discussion
75
     */
76
    public function creating(Discussion $discussion)
77
    {
78
        if ($user = auth('web')->user()) {
79
            $discussion->discussable_type = User::class;
80
            $discussion->discussable_id = $user->id;
81
        } else {
82
            $discussion->discussable_type = get_class(auth()->user());
83
            $discussion->discussable_id = auth()->user()->id;
84
            $discussion->approved = true;
85
        }
86
    }
87
}
88