Passed
Push — master ( d0634e...13c37e )
by Yuichi
10:21 queued 22s
created

Space::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
namespace CybozuHttp\Api\Kintone;
4
5
use CybozuHttp\Client;
6
use CybozuHttp\Api\KintoneApi;
7
use CybozuHttp\Middleware\JsonStream;
8
9
/**
10
 * @author ochi51 <[email protected]>
11
 */
12
class Space
13
{
14
    /**
15
     * @var Client
16
     */
17
    private $client;
18
19 1
    public function __construct(Client $client)
20
    {
21 1
        $this->client = $client;
22
    }
23
24
    /**
25
     * Get space
26
     * https://cybozudev.zendesk.com/hc/ja/articles/202166200
27
     *
28
     * @param integer $id
29
     * @param integer $guestSpaceId
30
     * @return array
31
     */
32 42
    public function get($id, $guestSpaceId = null): array
33
    {
34 42
        $options = ['json' => ['id' => $id]];
35
36
        /** @var JsonStream $stream */
37 42
        $stream = $this->client
38 42
            ->get(KintoneApi::generateUrl('space.json', $guestSpaceId), $options)
39 42
            ->getBody();
40
41 42
        return $stream->jsonSerialize();
42
    }
43
44
    /**
45
     * Post space
46
     * https://cybozudev.zendesk.com/hc/ja/articles/202166210#step1
47
     *
48
     * @param integer $id
49
     * @param string  $name
50
     * @param array   $members
51
     * @param boolean $isPrivate
52
     * @param boolean $isGuest
53
     * @param boolean $fixedMember
54
     * @return array
55
     */
56 45
    public function post($id, $name, array $members, $isPrivate = false, $isGuest = false, $fixedMember = false): array
57
    {
58 45
        $options = ['json' => compact('id', 'name', 'members', 'isPrivate', 'isGuest', 'fixedMember')];
59
60
        /** @var JsonStream $stream */
61 45
        $stream = $this->client
62 45
            ->post(KintoneApi::generateUrl('template/space.json'), $options)
63 45
            ->getBody();
64
65 45
        return $stream->jsonSerialize();
66
    }
67
68
    /**
69
     * Delete space
70
     * https://cybozudev.zendesk.com/hc/ja/articles/202166250
71
     *
72
     * @param integer $id
73
     * @param integer $guestSpaceId
74
     * @return array
75
     */
76 44
    public function delete($id, $guestSpaceId = null): array
77
    {
78 44
        $options = ['json' => ['id' => $id]];
79
80
        /** @var JsonStream $stream */
81 44
        $stream = $this->client
82 44
            ->delete(KintoneApi::generateUrl('space.json', $guestSpaceId), $options)
83 44
            ->getBody();
84
85 44
        return $stream->jsonSerialize();
86
    }
87
88
    /**
89
     * Put space body
90
     * https://cybozudev.zendesk.com/hc/ja/articles/201941884
91
     *
92
     * @param integer $id
93
     * @param string  $body
94
     * @param integer $guestSpaceId
95
     * @return array
96
     */
97 1
    public function putBody($id, $body, $guestSpaceId = null): array
98
    {
99 1
        $options = ['json' => compact('id', 'body')];
100
101
        /** @var JsonStream $stream */
102 1
        $stream = $this->client
103 1
            ->put(KintoneApi::generateUrl('space/body.json', $guestSpaceId), $options)
104 1
            ->getBody();
105
106 1
        return $stream->jsonSerialize();
107
    }
108
109
    /**
110
     * Get space members
111
     * https://cybozudev.zendesk.com/hc/ja/articles/202166220
112
     *
113
     * @param integer $id
114
     * @param integer $guestSpaceId
115
     * @return array
116
     */
117 2
    public function getMembers($id, $guestSpaceId = null): array
118
    {
119 2
        $options = ['json' => ['id' => $id]];
120
121
        /** @var JsonStream $stream */
122 2
        $stream = $this->client
123 2
            ->get(KintoneApi::generateUrl('space/members.json', $guestSpaceId), $options)
124 2
            ->getBody();
125
126 2
        return $stream->jsonSerialize();
127
    }
128
129
    /**
130
     * Put space members
131
     * https://cybozudev.zendesk.com/hc/ja/articles/202166230
132
     *
133
     * @param integer $id
134
     * @param array   $members
135
     * @param integer $guestSpaceId
136
     * @return array
137
     */
138 1
    public function putMembers($id, array $members, $guestSpaceId = null): array
139
    {
140 1
        $options = ['json' => compact('id', 'members')];
141
142
        /** @var JsonStream $stream */
143 1
        $stream = $this->client
144 1
            ->put(KintoneApi::generateUrl('space/members.json', $guestSpaceId), $options)
145 1
            ->getBody();
146
147 1
        return $stream->jsonSerialize();
148
    }
149
150
    /**
151
     * Put space guest users
152
     * https://cybozudev.zendesk.com/hc/ja/articles/201941904
153
     *
154
     * @param integer $id
155
     * @param array   $guests
156
     * @return array
157
     */
158 1
    public function putGuests($id, array $guests): array
159
    {
160 1
        $options = ['json' => compact('id', 'guests')];
161
162
        /** @var JsonStream $stream */
163 1
        $stream = $this->client
164 1
            ->put(KintoneApi::generateUrl('space/guests.json', $id), $options)
165 1
            ->getBody();
166
167 1
        return $stream->jsonSerialize();
168
    }
169
}
170