Passed
Push — master ( 489f2e...0cdf36 )
by
unknown
289:17 queued 286:28
created

AddCommentController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 23
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A index() 0 40 4
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\Frontend\App\Controllers\Donation;
6
7
use Symfony\Component\HttpFoundation\JsonResponse;
8
use Symfony\Component\HttpFoundation\Request;
9
use Symfony\Component\HttpFoundation\Response;
10
use WMDE\Fundraising\DonationContext\UseCases\AddComment\AddCommentRequest;
11
use WMDE\Fundraising\Frontend\Factories\FunFunFactory;
12
13
class AddCommentController {
14
15
	public function index( FunFunFactory $ffFactory, Request $request ): Response {
16
		$addCommentRequest = new AddCommentRequest();
17
		$addCommentRequest->setCommentText( trim( $request->request->get( 'comment', '' ) ) );
18
		$addCommentRequest->setIsPublic( $request->request->getBoolean( 'public' ) );
19
		$addCommentRequest->setDonationId( (int)$request->request->get( 'donationId', '' ) );
20
21
		if ( $request->request->getBoolean( 'isAnonymous' ) ) {
22
			$addCommentRequest->setIsAnonymous();
23
		} else {
24
			$addCommentRequest->setIsNamed();
25
		}
26
27
		$addCommentRequest->freeze()->assertNoNullFields();
28
29
		$updateToken = $request->request->get( 'updateToken', '' );
30
31
		if ( $updateToken === '' ) {
32
			return JsonResponse::create(
33
				[
34
					'status' => 'ERR',
35
					'message' => 'comment_failure_access_denied',
36
				]
37
			);
38
		}
39
40
		$response = $ffFactory->newAddCommentUseCase( $updateToken )->addComment( $addCommentRequest );
41
42
		if ( $response->isSuccessful() ) {
43
			return JsonResponse::create(
44
				[
45
					'status' => 'OK',
46
					'message' => $response->getSuccessMessage(),
47
				]
48
			);
49
		}
50
51
		return JsonResponse::create(
52
			[
53
				'status' => 'ERR',
54
				'message' => $response->getErrorMessage(),
55
			]
56
		);
57
	}
58
}
59