diff --git a/crc/api.yml b/crc/api.yml index 3a0875cc..20cd34dd 100644 --- a/crc/api.yml +++ b/crc/api.yml @@ -828,6 +828,28 @@ paths: type: array items: $ref: "#/components/schemas/ApprovalCounts" + /all_approvals: + parameters: + - name: status + in: query + required: false + description: If set to true, returns all the approvals with any status. Defaults to false, leaving out canceled approvals. + schema: + type: boolean + get: + operationId: crc.api.approval.get_all_approvals + summary: Provides a list of all workflows approvals + tags: + - Approvals + responses: + '200': + description: An array of approvals + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Approval" /approval: parameters: - name: status diff --git a/crc/api/approval.py b/crc/api/approval.py index ae5ebed0..c9866f88 100644 --- a/crc/api/approval.py +++ b/crc/api/approval.py @@ -63,6 +63,12 @@ def get_approval_counts(as_user=None): return counts +def get_all_approvals(status=None): + approvals = ApprovalService.get_all_approvals(include_cancelled=status is True) + results = ApprovalSchema(many=True).dump(approvals) + return results + + def get_approvals(status=None, as_user=None): #status = ApprovalStatus.PENDING.value user = g.user.uid