Completed
Push — master ( e847a5...5b0cc0 )
by Matěj
25s queued 10s
created

GroupFolders.create_group_folder()   A

Complexity

Conditions 1

Size

Total Lines 11
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

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