Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 40
Referrer
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
600
0.00% covered (danger)
0.00%
0 / 40
 createReferrer
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 9
 editReferrer
0.00% covered (danger)
0.00%
0 / 1
42
0.00% covered (danger)
0.00%
0 / 11
 deleteReferrer
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 6
 getZoneReferrers
0.00% covered (danger)
0.00%
0 / 1
56
0.00% covered (danger)
0.00%
0 / 8
 deleteReferrers
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 6
1<?php
2namespace Qmp\Laravel\CDNApi\Cdn\KeyCDNProvider\Traits;
3
4use Qmp\Laravel\CDNApi\Cdn\AbstractProvider;
5use Qmp\Laravel\CDNApi\Cdn\KeyCDNProvider\Objects\Alias;
6use Qmp\Laravel\CDNApi\Cdn\KeyCDNProvider\Objects\Referrer as ObjectReferrer;
7use Qmp\Laravel\CDNApi\Cdn\KeyCDNProvider\Objects\Stats;
8use Qmp\Laravel\CDNApi\Cdn\KeyCDNProvider\Objects\Zone;
9
10trait Referrer
11{
12    public function createReferrer($zoneId, $url)
13    {
14        $referrer = new ObjectReferrer();
15        $referrer->zone_id = $zoneId;
16        $referrer->name= $url;
17
18        $result = $this->send('add_zone_referrer', $referrer);
19
20        if (isset($result['status']) && $result['status'] == 'success' && isset($result['data']['zonereferrer'])) {
21            $referrer->set($result['data']['zonereferrer']);
22            $referrer->setId($referrer->id);
23            return $referrer->all();
24        }
25
26        return false;
27    }
28
29    public function editReferrer($id, $url = null, $zoneId = null)
30    {
31        $referrer = new ObjectReferrer(['id' => $id]);
32        $referrer->setId($id);
33        if ($zoneId) {
34            $referrer->zone_id = $zoneId;
35        }
36        if ($url) {
37            $referrer->name= $url;
38        }
39
40        $result = $this->send('edit_zone_alias', $referrer);
41
42        if (isset($result['status']) && $result['status'] == 'success' && isset($result['data']['zonereferrer'])) {
43            $referrer->set($result['data']['zonereferrer']);
44            return $referrer->all();
45        }
46    }
47
48    public function deleteReferrer($id)
49    {
50        $referrer = new ObjectReferrer();
51        $referrer->setId($id);
52        $result = $this->send('delete_zone_referrer', $referrer);
53        if (!isset($result['status']) || $result['status'] != 'success') {
54            return false;
55        }
56
57        return true;
58    }
59
60    protected function getZoneReferrers($id = null)
61    {
62        $result = $this->send('list_zone_referrers');
63
64        $response = [];
65        if (isset($result['status']) && $result['status'] == 'success' && isset($result['data']['zonereferrers'])) {
66            foreach ($result['data']['zonereferrers'] as $zoneReferrers) {
67                if ($zoneReferrers['zone_id'] == $id || $id === null) {
68                    $referrer = new ObjectReferrer($zoneReferrers);
69                    $response[] = $referrer->all();
70                }
71            }
72        }
73
74        return $response;
75    }
76
77    protected function deleteReferrers($zoneId)
78    {
79        $resultReferrers = $this->getZoneReferrers();
80        foreach ($resultReferrers as $resultReferrer) {
81            if ($resultReferrer['zone_id'] == $zoneId) {
82                if (!$this->deleteReferrer($id)) {
83                    return false;
84                }
85            }
86        }
87
88        return true;
89    }
90
91
92}