# HG changeset patch # User Marcin Kuzminski # Date 2019-01-31 13:42:23 # Node ID f33ce25870cdeec7a85273c8cf45cb662e6e8291 # Parent e5ce09620d82e8dbc5a2e5397cf34e9a4fea5d62 api: pull-requests get_all now sortes the results and have a flag to show/hide merge result state diff --git a/rhodecode/api/views/pull_request_api.py b/rhodecode/api/views/pull_request_api.py --- a/rhodecode/api/views/pull_request_api.py +++ b/rhodecode/api/views/pull_request_api.py @@ -141,7 +141,8 @@ def get_pull_request(request, apiuser, p @jsonrpc_method() -def get_pull_requests(request, apiuser, repoid, status=Optional('new')): +def get_pull_requests(request, apiuser, repoid, status=Optional('new'), + merge_state=Optional(True)): """ Get all pull requests from the repository specified in `repoid`. @@ -155,6 +156,9 @@ def get_pull_requests(request, apiuser, * ``open`` * ``closed`` :type status: str + :param merge_state: Optional calculate merge state for each repository. + This could result in longer time to fetch the data + :type merge_state: bool Example output: @@ -232,8 +236,10 @@ def get_pull_requests(request, apiuser, validate_repo_permissions(apiuser, repoid, repo, _perms) status = Optional.extract(status) - pull_requests = PullRequestModel().get_all(repo, statuses=[status]) - data = [pr.get_api_data() for pr in pull_requests] + merge_state = Optional.extract(merge_state, binary=True) + pull_requests = PullRequestModel().get_all(repo, statuses=[status], + order_by='id', order_dir='desc') + data = [pr.get_api_data(with_merge_state=merge_state) for pr in pull_requests] return data diff --git a/rhodecode/model/pull_request.py b/rhodecode/model/pull_request.py --- a/rhodecode/model/pull_request.py +++ b/rhodecode/model/pull_request.py @@ -167,6 +167,7 @@ class PullRequestModel(BaseModel): if order_by: order_map = { 'name_raw': PullRequest.pull_request_id, + 'id': PullRequest.pull_request_id, 'title': PullRequest.title, 'updated_on_raw': PullRequest.updated_on, 'target_repo': PullRequest.target_repo_id