nextcloud.api_wrappers.group_folders   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 124
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 9
eloc 28
dl 0
loc 124
rs 10
c 0
b 0
f 0

9 Methods

Rating   Name   Duplication   Size   Complexity  
A GroupFolders.rename_group_folder() 0 13 1
A GroupFolders.set_quota_of_group_folder() 0 13 1
A GroupFolders.get_group_folder() 0 11 1
A GroupFolders.get_group_folders() 0 8 1
A GroupFolders.create_group_folder() 0 11 1
A GroupFolders.grant_access_to_group_folder() 0 13 1
A GroupFolders.set_permissions_to_group_folder() 0 14 1
A GroupFolders.delete_group_folder() 0 11 1
A GroupFolders.revoke_access_to_group_folder() 0 13 1
1
# -*- coding: utf-8 -*-
2
from nextcloud.base import WithRequester
3
4
5
class GroupFolders(WithRequester):
6
    API_URL = "/apps/groupfolders/folders"
7
    SUCCESS_CODE = 100
8
9
    def get_group_folders(self):
10
        """
11
        Return a list of call configured folders and their settings
12
13
        Returns:
14
15
        """
16
        return self.requester.get()
17
18
    def get_group_folder(self, fid):
19
        """
20
        Return a specific configured folder and it's settings
21
22
        Args:
23
            fid (int/str): group folder id
24
25
        Returns:
26
27
        """
28
        return self.requester.get(fid)
29
30
    def create_group_folder(self, mountpoint):
31
        """
32
        Create a new group folder
33
34
        Args:
35
            mountpoint (str): name for the new folder
36
37
        Returns:
38
39
        """
40
        return self.requester.post(data={"mountpoint": mountpoint})
41
42
    def delete_group_folder(self, fid):
43
        """
44
        Delete a group folder
45
46
        Args:
47
            fid (int/str): group folder id
48
49
        Returns:
50
51
        """
52
        return self.requester.delete(fid)
53
54
    def grant_access_to_group_folder(self, fid, gid):
55
        """
56
        Give a group access to a folder
57
58
        Args:
59
            fid (int/str): group folder id
60
            gid (str): group to share with id
61
62
        Returns:
63
64
        """
65
        url = "/".join([str(fid), "groups"])
66
        return self.requester.post(url, data={"group": gid})
67
68
    def revoke_access_to_group_folder(self, fid, gid):
69
        """
70
        Remove access from a group to a folder
71
72
        Args:
73
            fid (int/str): group folder id
74
            gid (str): group id
75
76
        Returns:
77
78
        """
79
        url = "/".join([str(fid), "groups", gid])
80
        return self.requester.delete(url)
81
82
    def set_permissions_to_group_folder(self, fid, gid, permissions):
83
        """
84
        Set the permissions a group has in a folder
85
86
        Args:
87
            fid (int/str): group folder id
88
            gid (str): group id
89
            permissions (int): The new permissions for the group as attribute of Permission class
90
91
        Returns:
92
93
        """
94
        url = "/".join([str(fid), "groups", gid])
95
        return self.requester.post(url=url, data={"permissions": permissions})
96
97
    def set_quota_of_group_folder(self, fid, quota):
98
        """
99
        Set the quota for a folder in bytes
100
101
        Args:
102
            fid (int/str): group folder id
103
            quota (int/str): The new quota for the folder in bytes, user -3 for unlimited
104
105
        Returns:
106
107
        """
108
        url = "/".join([str(fid), "quota"])
109
        return self.requester.post(url, {"quota": quota})
110
111
    def rename_group_folder(self, fid, mountpoint):
112
        """
113
        Change the name of a folder
114
115
        Args:
116
            fid (int/str): group folder id
117
            mountpoint (str): The new name for the folder
118
119
        Returns:
120
121
        """
122
        url = "/".join([str(fid), "mountpoint"])
123
        return self.requester.post(url=url, data={"mountpoint": mountpoint})
124