From 4b89d1314d5fa280db6d06b415f62218b48a98c2 Mon Sep 17 00:00:00 2001 From: Avery Kushner Date: Fri, 18 Mar 2022 14:02:38 -0700 Subject: [PATCH 1/2] adds support for /sandbox/applications/application_id/approve --- unit/api/application_resource.py | 18 ++++++++++++++++++ unit/models/application.py | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/unit/api/application_resource.py b/unit/api/application_resource.py index 683dfff6..9e4b7570 100644 --- a/unit/api/application_resource.py +++ b/unit/api/application_resource.py @@ -61,3 +61,21 @@ def upload(self, request: UploadDocumentRequest): return UnitResponse[ApplicationDocumentDTO](DtoDecoder.decode(data), None) else: return UnitError.from_json_api(response.json()) + + def approve_sb(self, request: ApproveApplicationSB): + url = f"sandbox/{self.resource}/{request.application_id}/approve" + + payload = request.to_json_api() + response = super().post(url, payload) + + if response.ok: + data = response.json().get("data") + included = response.json().get("included") + return UnitResponse(data, included) + # TODO need DTOs for this response + # if data["type"] == "individualApplication": + # return UnitResponse[IndividualApplicationDTO](DtoDecoder.decode(data), DtoDecoder.decode(included)) + # else: + # return UnitResponse[BusinessApplicationDTO](DtoDecoder.decode(data), DtoDecoder.decode(included)) + else: + return UnitError.from_json_api(response.json()) \ No newline at end of file diff --git a/unit/models/application.py b/unit/models/application.py index 60f5a5c9..7abb33ef 100644 --- a/unit/models/application.py +++ b/unit/models/application.py @@ -258,3 +258,21 @@ def to_dict(self) -> Dict: if self.sort: parameters["sort"] = self.sort return parameters + +class ApproveApplicationSB(UnitRequest): + def __init__(self, application_id: str): + self.application_id = application_id + + def to_json_api(self) -> Dict: + payload = { + "data": { + "type": "applicationApprove", + "attributes": { + "reason": "sandbox" + } + } + } + return payload + + def __repr__(self): + json.dumps(self.to_json_api()) From e3b8a836dfa80992040d24498081fef66d101f4b Mon Sep 17 00:00:00 2001 From: Avery Kushner Date: Fri, 18 Mar 2022 14:16:45 -0700 Subject: [PATCH 2/2] ApproveApplicationSBRequest --- unit/api/application_resource.py | 2 +- unit/models/application.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/unit/api/application_resource.py b/unit/api/application_resource.py index 9e4b7570..29051e0f 100644 --- a/unit/api/application_resource.py +++ b/unit/api/application_resource.py @@ -62,7 +62,7 @@ def upload(self, request: UploadDocumentRequest): else: return UnitError.from_json_api(response.json()) - def approve_sb(self, request: ApproveApplicationSB): + def approve_sb(self, request: ApproveApplicationSBRequest): url = f"sandbox/{self.resource}/{request.application_id}/approve" payload = request.to_json_api() diff --git a/unit/models/application.py b/unit/models/application.py index 7abb33ef..98744681 100644 --- a/unit/models/application.py +++ b/unit/models/application.py @@ -259,7 +259,7 @@ def to_dict(self) -> Dict: parameters["sort"] = self.sort return parameters -class ApproveApplicationSB(UnitRequest): +class ApproveApplicationSBRequest(UnitRequest): def __init__(self, application_id: str): self.application_id = application_id