Completed
Pull Request — master (#1951)
by
unknown
63:33
created

ShowMembershipApplicationFormController::index()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 24
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 14
nc 2
nop 2
dl 0
loc 24
rs 9.7998
c 0
b 0
f 0
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\Frontend\App\Controllers\Membership;
6
7
use Symfony\Component\HttpFoundation\Request;
8
use Symfony\Component\HttpFoundation\Response;
9
use WMDE\Fundraising\DonationContext\UseCases\GetDonation\GetDonationRequest;
10
use WMDE\Fundraising\Frontend\App\Routes;
11
use WMDE\Fundraising\Frontend\Factories\FunFunFactory;
12
use WMDE\Fundraising\Frontend\Presentation\DonationMembershipApplicationAdapter;
13
14
class ShowMembershipApplicationFormController {
15
16
	public function index( FunFunFactory $ffFactory, Request $httpRequest ): Response {
17
		$params = [
18
			'urls' => Routes::getNamedRouteUrls( $ffFactory->getUrlGenerator() )
19
		];
20
		$params['showMembershipTypeOption'] = $httpRequest->query->get( 'type' ) !== 'sustaining';
21
22
		$useCase = $ffFactory->newGetDonationUseCase( $httpRequest->query->get( 'donationAccessToken', '' ) );
23
		$responseModel = $useCase->showConfirmation(
24
			new GetDonationRequest(
25
				$httpRequest->query->getInt( 'donationId' )
26
			)
27
		);
28
29
		if ( $responseModel->accessIsPermitted() ) {
30
			$adapter = new DonationMembershipApplicationAdapter();
31
			$params['initialFormValues'] = $adapter->getInitialMembershipFormValues(
32
				$responseModel->getDonation()
33
			);
34
			$params['initialValidationResult'] = $adapter->getInitialValidationState(
35
				$responseModel->getDonation()
36
			);
37
		}
38
39
		return new Response( $ffFactory->getMembershipApplicationFormTemplate()->render( $params ) );
40
	}
41
}
42