OrgMixin   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 84
rs 10
c 0
b 0
f 0
wmc 13

11 Methods

Rating   Name   Duplication   Size   Complexity  
A remove_group_member() 0 5 1
A add_group() 0 10 1
A is_group_member() 0 5 1
A add_group_package() 0 5 1
A group_members() 0 6 1
A group_packages() 0 5 1
A group() 0 5 1
A remove_group_package() 0 5 1
A user_orgs() 0 11 2
A add_group_member() 0 5 1
A groups() 0 10 2
1
from binstar_client.utils import jencode
2
3
class OrgMixin(object):
4
5
    def user_orgs(self, username=None):
6
7
        if username:
8
            url = '%s/users/%s/orgs' % (self.domain, username)
9
        else:
10
            url = '%s/user/orgs' % (self.domain)
11
12
        res = self.session.get(url)
13
        self._check_response(res)
14
15
        return res.json()
16
17
    def groups(self, owner=None):
18
        if owner:
19
            url = '%s/groups/%s' % (self.domain, owner)
20
        else:
21
            url = '%s/groups' % (self.domain,)
22
23
        res = self.session.get(url)
24
        self._check_response(res)
25
26
        return res.json()
27
28
    def group(self, owner, group_name):
29
        url = '%s/group/%s/%s' % (self.domain, owner, group_name)
30
        res = self.session.get(url)
31
        self._check_response(res)
32
        return res.json()
33
34
    def group_members(self, org, name):
35
        url = '%s/group/%s/%s/members' % (self.domain, org, name)
36
        res = self.session.get(url)
37
        self._check_response(res)
38
39
        return res.json()
40
41
    def is_group_member(self, org, name, member):
42
        url = '%s/group/%s/%s/members/%s' % (self.domain, org, name, member)
43
        res = self.session.get(url)
44
        self._check_response(res, [204, 404])
45
        return res.status_code == 204
46
47
    def add_group_member(self, org, name, member):
48
        url = '%s/group/%s/%s/members/%s' % (self.domain, org, name, member)
49
        res = self.session.put(url)
50
        self._check_response(res, [204])
51
        return
52
53
    def remove_group_member(self, org, name, member):
54
        url = '%s/group/%s/%s/members/%s' % (self.domain, org, name, member)
55
        res = self.session.delete(url)
56
        self._check_response(res, [204])
57
        return
58
59
    def remove_group_package(self, org, name, package):
60
        url = '%s/group/%s/%s/packages/%s' % (self.domain, org, name, package)
61
        res = self.session.delete(url)
62
        self._check_response(res, [204])
63
        return
64
65
    def group_packages(self, org, name):
66
        url = '%s/group/%s/%s/packages' % (self.domain, org, name)
67
        res = self.session.get(url)
68
        self._check_response(res, [200])
69
        return res.json()
70
71
    def add_group_package(self, org, name, package):
72
        url = '%s/group/%s/%s/packages/%s' % (self.domain, org, name, package)
73
        res = self.session.put(url)
74
        self._check_response(res, [204])
75
        return
76
77
    def add_group(self, org, name, perms='read'):
78
        url = '%s/group/%s/%s' % (self.domain, org, name)
79
80
        payload = dict(perms=perms)
81
        data, headers = jencode(payload)
82
83
        res = self.session.post(url, data=data, headers=headers)
84
        self._check_response(res, [204])
85
86
        return
87
88