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