SubscriptionDeactivated::handle()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 8
c 0
b 0
f 0
dl 0
loc 18
ccs 9
cts 9
cp 1
rs 10
cc 1
nc 1
nop 1
crap 1
1
<?php
2
/**
3
 * This file implements Subscription Deactivated.
4
 *
5
 * @author    Bilal Gultekin <[email protected]>
6
 * @author    Justin Hartman <[email protected]>
7
 * @copyright 2019 22 Digital
8
 * @license   MIT
9
 * @since     v0.1
10
 */
11
12
namespace TwentyTwoDigital\CashierFastspring\Listeners;
13
14
use TwentyTwoDigital\CashierFastspring\Events;
15
use TwentyTwoDigital\CashierFastspring\Subscription;
16
17
/**
18
 * This class is a listener for subscription deactivation events.
19
 * It deactivated fastspring subscription and create another local, free one.
20
 *
21
 * {@inheritdoc}
22
 */
23
class SubscriptionDeactivated extends Base
24
{
25
    /**
26
     * Create the event listener.
27
     *
28
     * @return null
29
     */
30 1
    public function __construct()
31
    {
32
        //
33 1
    }
34
35
    /**
36
     * Handle the event.
37
     *
38
     * @param \TwentyTwoDigital\CashierFastspring\Events\Base $event
39
     *
40
     * @return void
41
     */
42 1
    public function handle(Events\Base $event)
43
    {
44 1
        $data = $event->data;
45
46
        // now this code only convert state into deactivated
47
        // you may want to do something special to your project
48
        // for instance you may want to turn subscription into free local package
49 1
        $subscription = Subscription::where('fastspring_id', $data['id'])->firstOrFail();
50
51
        // fill
52 1
        $subscription->user_id = $this->getUserByFastspringId($data['account']['id'])->id;
53 1
        $subscription->plan = $data['product']['product'];
54 1
        $subscription->state = $data['state'];
55 1
        $subscription->currency = $data['currency'];
56 1
        $subscription->quantity = $data['quantity'];
57
58
        // save
59 1
        $subscription->save();
60 1
    }
61
}
62