SitesApi   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 30
c 1
b 0
f 0
dl 0
loc 80
rs 10
wmc 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A list() 0 5 1
A setStaticCacheMode() 0 5 1
A removeCustomCertificate() 0 4 1
A delete() 0 4 1
A uploadCustomCertificate() 0 6 1
A add() 0 3 1
A status() 0 4 1
A listCacheRules() 0 6 1
A moveSite() 0 5 1
A purgeCache() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Incapsula\Api;
6
7
class SitesApi extends AbstractApi
8
{
9
    /**
10
     * @var string
11
     */
12
    private $apiUri = 'https://my.incapsula.com/api/prov/v1/sites';
13
14
    public function list(int $pageSize = 50, int $pageNum = 0): array
15
    {
16
        return $this->client->send(sprintf('%s/list', $this->apiUri), [
17
            'page_size' => $pageSize,
18
            'page_num' => $pageNum,
19
        ]);
20
    }
21
22
    public function add(array $params = []): array
23
    {
24
        return $this->client->send(sprintf('%s/add', $this->apiUri), $params);
25
    }
26
27
    public function status(string $siteId): array
28
    {
29
        return $this->client->send(sprintf('%s/status', $this->apiUri), [
30
            'site_id' => $siteId,
31
        ]);
32
    }
33
34
    public function delete(string $siteId): array
35
    {
36
        return $this->client->send(sprintf('%s/delete', $this->apiUri), [
37
            'site_id' => $siteId,
38
        ]);
39
    }
40
41
    public function uploadCustomCertificate(string $siteId, string $certificate, string $privateKey): array
42
    {
43
        return $this->client->send(sprintf('%s/customCertificate/upload', $this->apiUri), [
44
            'site_id' => $siteId,
45
            'certificate' => base64_encode($certificate),
46
            'private_key' => base64_encode($privateKey),
47
        ]);
48
    }
49
50
    public function removeCustomCertificate(string $siteId): array
51
    {
52
        return $this->client->send(sprintf('%s/removeCustomCertificate', $this->apiUri), [
53
            'site_id' => $siteId,
54
        ]);
55
    }
56
57
    public function purgeCache(string $siteId, string $purgePattern = ''): array
58
    {
59
        return $this->client->send(sprintf('%s/cache/purge', $this->apiUri), [
60
            'site_id' => $siteId,
61
            'purge_pattern' => $purgePattern,
62
        ]);
63
    }
64
65
    public function moveSite(string $siteId, string $destAccountId): array
66
    {
67
        return $this->client->send(sprintf('%s/moveSite', $this->apiUri), [
68
            'site_id' => $siteId,
69
            'destination_account_id' => $destAccountId,
70
        ]);
71
    }
72
73
    public function listCacheRules(string $siteId, int $pageSize = 50, int $pageNum = 0): array
74
    {
75
        return $this->client->sendRaw(sprintf('%s/performance/caching-rules/list', $this->apiUri), [
76
            'site_id' => $siteId,
77
            'page_size' => $pageSize,
78
            'page_num' => $pageNum,
79
        ]);
80
    }
81
82
    public function setStaticCacheMode(string $siteId): array
83
    {
84
        return $this->client->send(sprintf('%s/performance/cache-mode', $this->apiUri), [
85
            'site_id' => $siteId,
86
            'cache_mode' => 'static_only',
87
        ]);
88
    }
89
}
90