Как скопировать карту с помощью Python API, в идеале используя Py-Trello - PullRequest
1 голос
/ 08 июня 2019

Используя Trello API, я хотел бы скопировать карту с одной платы в определенный список на другой доске.

У меня есть некоторые программы, запрограммированные с помощью py-trello (оболочки Python для Trello API).Py-Trello здесь https://github.com/sarumont/py-trello

Py-Trello не имеет кода для копирования карт, и я не мог понять, как использовать действия, описанные на этой странице API Trello (https://developers.trello.com/reference/#cards-nested-resource) и использовать некоторыефункции в py-trello.

Я считаю, что мне нужно вызвать эту функцию в py-trello или написать свою собственную функцию на основе этого кода. Однако я просто незнаю, как вызвать эту функцию с помощью опции copyCard.

def fetch_json(
            self,
            uri_path,
            http_method='GET',
            headers=None,
            query_params=None,
            post_args=None,
            files=None):
        """ Fetch some JSON from Trello """

        # explicit values here to avoid mutable default values
        if headers is None:
            headers = {}
        if query_params is None:
            query_params = {}
        if post_args is None:
            post_args = {}

        # if files specified, we don't want any data
        data = None
        if files is None:
            data = json.dumps(post_args)

        # set content type and accept headers to handle JSON
        if http_method in ("POST", "PUT", "DELETE") and not files:
            headers['Content-Type'] = 'application/json; charset=utf-8'

        headers['Accept'] = 'application/json'

        # construct the full URL without query parameters
        if uri_path[0] == '/':
            uri_path = uri_path[1:]
        url = 'https://api.trello.com/1/%s' % uri_path

        if self.oauth is None:
            query_params['key'] = self.api_key
            query_params['token'] = self.api_secret

        # perform the HTTP requests, if possible uses OAuth authentication
        response = self.http_service.request(http_method, url, params=query_params,
                                             headers=headers, data=data,
                                             auth=self.oauth, files=files,
                                             proxies=self.proxies)

        if response.status_code == 401:
            raise Unauthorized("%s at %s" % (response.text, url), response)
        if response.status_code != 200:
            raise ResourceUnavailable("%s at %s" % (response.text, url), response)

        return response.json()

py-trello даже имеет функцию для замены платы для карты. Копирование здесь ниже, но, увы, я не могу изменить этот кодкопировать функцию карты, потому что я не знаю, как использовать « вложенные карты в качестве параметров URL » из API Trello.

    def change_board(self, board_id, list_id=None):
        args = {'value': board_id}
        if list_id is not None:
            args['idList'] = list_id
        self.client.fetch_json(
            '/cards/' + self.id + '/idBoard',
            http_method='PUT',
            post_args=args)

Я хотел бы иметь возможность скопировать карту иФункция копирования карты должна возвращать объект py-trello, указывающий на новую карту, созданную в результате копирования.

Спасибо!

...