update financial verification to use requests repo

This commit is contained in:
dandds 2018-07-27 15:27:50 -04:00
parent 7f5f02985b
commit 78c55099bc
3 changed files with 23 additions and 31 deletions

View File

@ -107,7 +107,7 @@ def make_app(config, deps, **kwargs):
RequestFinancialVerification,
{
"page": "financial_verification",
"requests_client": deps["requests_client"],
"db_session": deps["db_session"],
"fundz_client": deps["fundz_client"],
},
name="financial_verification",

View File

@ -2,26 +2,23 @@ import tornado
from atst.handler import BaseHandler
from atst.forms.financial import FinancialForm
from atst.domain.requests import Requests
class RequestFinancialVerification(BaseHandler):
def initialize(self, page, requests_client, fundz_client):
def initialize(self, page, db_session, fundz_client):
self.page = page
self.requests_client = requests_client
self.requests_repo = Requests(db_session)
self.fundz_client = fundz_client
@tornado.gen.coroutine
def get_existing_request(self, request_id):
if request_id is None:
return {}
request = yield self.requests_client.get("/requests/{}".format(request_id))
return request.json
return self.requests_repo.get(request_id)
@tornado.web.authenticated
@tornado.gen.coroutine
def get(self, request_id=None):
existing_request = yield self.get_existing_request(request_id)
form = FinancialForm(data=existing_request['body'].get('financial_verification'))
existing_request = self.get_existing_request(request_id)
form = FinancialForm(data=existing_request.body.get('financial_verification'))
self.render(
"requests/financial_verification.html.to",
page=self.page,
@ -35,39 +32,33 @@ class RequestFinancialVerification(BaseHandler):
"creator_id": self.current_user["id"],
"request": {"financial_verification": form_data},
}
response = yield self.requests_client.patch(
"/requests/{}".format(request_id), json=request_data
)
return response
return self.requests_repo.update(request_id, request_data)
@tornado.web.authenticated
@tornado.gen.coroutine
def post(self, request_id=None):
self.check_xsrf_cookie()
post_data = self.request.arguments
existing_request = yield self.get_existing_request(request_id)
existing_request = self.get_existing_request(request_id)
form = FinancialForm(post_data)
rerender_args = dict(request_id=request_id, f=form)
if form.validate():
response = yield self.update_request(request_id, form.data)
if response.ok:
valid = yield form.perform_extra_validation(
existing_request.get('body', {}).get('financial_verification'),
self.fundz_client
yield self.update_request(request_id, form.data)
valid = yield form.perform_extra_validation(
existing_request.body.get('financial_verification'),
self.fundz_client
)
if valid:
self.redirect(
self.application.default_router.reverse_url("financial_verification_submitted")
)
if valid:
self.redirect(
self.application.default_router.reverse_url("financial_verification_submitted")
)
else:
self.render(
"requests/financial_verification.html.to",
**rerender_args
)
else:
self.set_status(response.code)
self.render(
"requests/financial_verification.html.to",
**rerender_args
)
else:
self.render(
"requests/financial_verification.html.to",

View File

@ -36,6 +36,7 @@ class TestPENumberInForm:
"atst.handlers.request_financial_verification.RequestFinancialVerification.check_xsrf_cookie", lambda s: True
)
monkeypatch.setattr("atst.forms.request.RequestForm.validate", lambda s: True)
monkeypatch.setattr("atst.domain.requests.Requests.get", lambda s, i: MOCK_REQUEST)
@tornado.gen.coroutine
def submit_data(self, http_client, base_url, data):
@ -64,7 +65,7 @@ class TestPENumberInForm:
self._set_monkeypatches(monkeypatch)
data = dict(self.required_data)
data['pe_id'] = MOCK_REQUEST['body']['financial_verification']['pe_id']
data['pe_id'] = MOCK_REQUEST.body['financial_verification']['pe_id']
response = yield self.submit_data(http_client, base_url, data)