1

I'm trying to use nxc.get_group_folders() in pyspark to get all group_folders on Nextcloud. But every time I try to use a function from the class GroupFolder(Req, Nextcloud), an error occurs.

this is the upcoming error message:

raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

I used the function like this:

nxc.get_group_folders()

I'm guessing, that the API_URL is wrong, but in all documentations from Nextcloud API, they use the same API_URL as I do.

My class looks like this:

class NextCloud:
    def __init__(self, endpoint, user, passwd, js=False):
        self.tojs = "?format=json" if js else ""
        self.endpoint = endpoint
        self.user_url = endpoint + "/ocs/v1.php/cloud/users"
        self.group_url = endpoint + "/ocs/v1.php/cloud/groups"
        self.share_url = endpoint + "/ocs/v2.php/apps/files_sharing/api/v1"
        self.apps_url = endpoint + "/ocs/v1.php/cloud/apps"
        self.group_folders_url = endpoint + "/ocs/v2.php/apps/groupfolders/folders"
        self.h_get = {"OCS-APIRequest": "true"}
        self.h_post = {"OCS-APIRequest": "true", "Content-Type": "application/x-www-form-urlencoded"}
        self.auth_pk = (user, passwd)


class Req(NextCloud):
# WrapRequests
    def rtn(self, resp):
        if self.tojs:  # JSON
            return resp.json()
        else:  # XML
            return resp.text

    def get(self, ur):
        res = requests.get(ur, auth=self.auth_pk, headers=self.h_get)
        return self.rtn(res)

    def post(self, ur, dt=None):
        if dt == None:
            res = requests.post(ur, auth=self.auth_pk, headers=self.h_post)
        else:
            res = requests.post(ur, auth=self.auth_pk, data=dt, headers=self.h_post)
        return self.rtn(res)

    def put(self, ur, dt=None):
        if dt == None:
            res = requests.put(ur, auth=self.auth_pk, headers=self.h_post)
        else:
            res = requests.put(ur, auth=self.auth_pk, data=dt, headers=self.h_post)
        return self.rtn(res)

    def delete(self, ur, dt=None):
        if dt == None:
            res = requests.delete(ur, auth=self.auth_pk, headers=self.h_post)
        else:
            res = requests.delete(ur, auth=self.auth_pk, data=dt, headers=self.h_post)
        return self.rtn(res)

class GroupFolders(Req, NextCloud):
    API_URL = "/apps/groupfolders/folders"
    SUCCESS_CODE = 100
    # /ocs/v2.php/apps/groupfolders/folders

    def get_group_folders(self):
        return self.get(self.group_folders_url + self.tojs)

    def create_group_folder(self, mountpoint):
        return self.post(self.group_folders_url + self.tojs, {"mountpoint": mountpoint})

etc.

Mabye someone uses this class GroupFolders and can tell me if is looks different than mine or someone had this error message as well and can help me fix it.

orhtej2
  • 2,133
  • 3
  • 16
  • 26
tina
  • 11
  • 2

0 Answers0