Classes

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 5 10 15 20 25 Line Coverage (%) Cyclomatic Complexity App\Action\Auth\RegisterAction — Coverage: 92.2% | Lines: 102 | Complexity: 20 App\Action\Document\CreateRegistrationDocumentsAction — Coverage: 0.0% | Lines: 70 | Complexity: 16 App\Action\Consent\UpdateMyConsentsAction — Coverage: 89.3% | Lines: 56 | Complexity: 16 App\Action\Admin\ImpersonateUserAction — Coverage: 98.2% | Lines: 55 | Complexity: 10 App\Action\Auth\LoginAction — Coverage: 100.0% | Lines: 36 | Complexity: 5 App\Action\Account\CreateAccountAction — Coverage: 100.0% | Lines: 34 | Complexity: 2 App\Action\Document\DownloadDocumentAction — Coverage: 90.9% | Lines: 33 | Complexity: 11 App\Action\Notification\UpdateMyNotificationPreferencesAction — Coverage: 84.8% | Lines: 33 | Complexity: 14 App\Action\Admin\CreateAdminTransactionAction — Coverage: 0.0% | Lines: 28 | Complexity: 8 App\Action\Account\GetAccountSummaryAction — Coverage: 100.0% | Lines: 27 | Complexity: 2 App\Action\Disbursement\GetDisbursementHistoryAction — Coverage: 81.5% | Lines: 27 | Complexity: 11 App\Action\Admin\SetInvestorPasswordAction — Coverage: 96.2% | Lines: 26 | Complexity: 10 App\Action\Auth\ResetPasswordAction — Coverage: 0.0% | Lines: 26 | Complexity: 9 App\Action\Investor\GetInvestorAction — Coverage: 96.2% | Lines: 26 | Complexity: 3 App\Action\Investor\GetInvestorByUserIdAction — Coverage: 100.0% | Lines: 26 | Complexity: 3 App\Action\Investor\UpdateInvestorAction — Coverage: 100.0% | Lines: 26 | Complexity: 2 App\Action\Account\GetAccountTransactionsAction — Coverage: 100.0% | Lines: 25 | Complexity: 5 App\Action\Disbursement\MarkDisbursedAction — Coverage: 100.0% | Lines: 25 | Complexity: 7 App\Action\Document\Submission\UploadDocumentAction — Coverage: 96.0% | Lines: 25 | Complexity: 5 App\Action\Investor\CreateInvestorAction — Coverage: 100.0% | Lines: 25 | Complexity: 2 App\Action\Account\GetAccountByInvestorAction — Coverage: 100.0% | Lines: 23 | Complexity: 2 App\Action\Admin\SendInvestorPasswordResetAction — Coverage: 91.3% | Lines: 23 | Complexity: 9 App\Action\Auth\RefreshTokenAction — Coverage: 100.0% | Lines: 23 | Complexity: 4 App\Action\SuperAdmin\ResolveErrorLogAction — Coverage: 0.0% | Lines: 23 | Complexity: 7 App\Action\Contact\SubmitPublicContactAction — Coverage: 95.5% | Lines: 22 | Complexity: 6 App\Action\Document\Admin\DownloadInvestorAgreementAction — Coverage: 95.5% | Lines: 22 | Complexity: 6 App\Action\Document\Provided\Admin\UploadProvidedDocumentAction — Coverage: 100.0% | Lines: 22 | Complexity: 3 App\Action\SuperAdmin\ListErrorLogsAction — Coverage: 100.0% | Lines: 22 | Complexity: 2 App\Action\Account\UpdateAccountStatusAction — Coverage: 100.0% | Lines: 21 | Complexity: 7 App\Action\Admin\GetAdminTransactionsAction — Coverage: 0.0% | Lines: 21 | Complexity: 6 App\Action\Auth\ChangePasswordAction — Coverage: 100.0% | Lines: 21 | Complexity: 7 App\Action\Loan\ApproveLoanAction — Coverage: 0.0% | Lines: 21 | Complexity: 4 App\Action\Loan\DenyLoanAction — Coverage: 0.0% | Lines: 21 | Complexity: 5 App\Action\SuperAdmin\UpdateSystemSettingAction — Coverage: 0.0% | Lines: 21 | Complexity: 7 App\Action\SuperAdmin\CreateTestUserAction — Coverage: 95.0% | Lines: 20 | Complexity: 4 App\Action\SuperAdmin\DeleteErrorLogsAction — Coverage: 0.0% | Lines: 20 | Complexity: 6 App\Action\Document\Submission\DownloadMyUploadAction — Coverage: 94.7% | Lines: 19 | Complexity: 5 App\Action\Investor\UpdateInvestorStatusAction — Coverage: 89.5% | Lines: 19 | Complexity: 4 App\Action\Investor\UpdateKycStatusAction — Coverage: 89.5% | Lines: 19 | Complexity: 4 App\Action\Loan\GetPendingLoansAction — Coverage: 0.0% | Lines: 19 | Complexity: 4 App\Action\Admin\UpdateConfigurationAction — Coverage: 100.0% | Lines: 18 | Complexity: 6 App\Action\Investor\ListPaymentMethodsAction — Coverage: 100.0% | Lines: 18 | Complexity: 2 App\Action\SuperAdmin\GenerateBulkDataAction — Coverage: 94.4% | Lines: 18 | Complexity: 4 App\Action\Admin\GetLendingActivityAction — Coverage: 0.0% | Lines: 17 | Complexity: 2 App\Action\Funding\SubmitFundingRequestAction — Coverage: 0.0% | Lines: 17 | Complexity: 4 App\Action\Funding\UpdateFundingRequestStatusAction — Coverage: 0.0% | Lines: 17 | Complexity: 5 App\Action\Loan\MakeAdditionalPaymentAction — Coverage: 0.0% | Lines: 17 | Complexity: 3 App\Action\Loan\RequestLoanAction — Coverage: 0.0% | Lines: 17 | Complexity: 4 App\Action\SuperAdmin\GenerateTransactionsAction — Coverage: 94.1% | Lines: 17 | Complexity: 6 App\Action\Admin\GetConfigurationAction — Coverage: 100.0% | Lines: 16 | Complexity: 4 App\Action\Auth\GetCurrentUserAction — Coverage: 93.8% | Lines: 16 | Complexity: 3 App\Action\Document\Submission\Admin\DownloadUploadAction — Coverage: 100.0% | Lines: 16 | Complexity: 4 App\Action\SuperAdmin\DeleteUserAction — Coverage: 0.0% | Lines: 16 | Complexity: 6 App\Action\Auth\LogoutAction — Coverage: 100.0% | Lines: 14 | Complexity: 4 App\Action\Loan\CheckEligibilityAction — Coverage: 100.0% | Lines: 14 | Complexity: 2 App\Action\Notification\GetMyEmailsAction — Coverage: 0.0% | Lines: 14 | Complexity: 3 App\Action\Admin\GetAdminInvestorsAction — Coverage: 100.0% | Lines: 13 | Complexity: 2 App\Action\Auth\RequestEmailChangeAction — Coverage: 100.0% | Lines: 13 | Complexity: 2 App\Action\Contact\SubmitContactAction — Coverage: 100.0% | Lines: 13 | Complexity: 2 App\Action\Document\Submission\Admin\RejectUploadAction — Coverage: 100.0% | Lines: 13 | Complexity: 3 App\Action\Loan\DeclineLoanAction — Coverage: 0.0% | Lines: 13 | Complexity: 4 App\Action\Loan\MakePaymentAction — Coverage: 0.0% | Lines: 13 | Complexity: 2 App\Action\SuperAdmin\GetAccountsForSuperAdminAction — Coverage: 92.3% | Lines: 13 | Complexity: 4 App\Action\SuperAdmin\UpdateUserRoleAction — Coverage: 92.3% | Lines: 13 | Complexity: 4 App\Action\Auth\ForgotPasswordAction — Coverage: 100.0% | Lines: 12 | Complexity: 5 App\Action\Disbursement\ListPendingDisbursementsAction — Coverage: 100.0% | Lines: 12 | Complexity: 4 App\Action\Document\Submission\DiscardUploadAction — Coverage: 91.7% | Lines: 12 | Complexity: 3 App\Action\Funding\ListPendingFundingRequestsAction — Coverage: 0.0% | Lines: 12 | Complexity: 4 App\Action\Loan\GetLoanAction — Coverage: 0.0% | Lines: 12 | Complexity: 5 App\Action\Document\Provided\ListMyProvidedDocumentsAction — Coverage: 90.9% | Lines: 11 | Complexity: 3 App\Action\Document\Submission\Admin\AcceptUploadAction — Coverage: 100.0% | Lines: 11 | Complexity: 2 App\Action\Document\Submission\ListMyUploadsAction — Coverage: 90.9% | Lines: 11 | Complexity: 3 App\Action\Stripe\WebhookAction — Coverage: 100.0% | Lines: 11 | Complexity: 2 App\Action\SuperAdmin\AccrueInterestAction — Coverage: 0.0% | Lines: 11 | Complexity: 2 App\Action\SuperAdmin\DeleteTestDataAction — Coverage: 90.9% | Lines: 11 | Complexity: 4 App\Action\Account\GetAccountBalanceHistoryAction — Coverage: 100.0% | Lines: 10 | Complexity: 3 App\Action\Admin\GetAdminInvestorDetailAction — Coverage: 100.0% | Lines: 10 | Complexity: 3 App\Action\Document\Submission\Admin\GetUploadAction — Coverage: 100.0% | Lines: 10 | Complexity: 2 App\Action\SuperAdmin\GetSystemSettingsAction — Coverage: 100.0% | Lines: 10 | Complexity: 2 App\Action\SuperAdmin\PostInterestAction — Coverage: 0.0% | Lines: 10 | Complexity: 2 App\Action\SuperAdmin\ProjectInterestAction — Coverage: 0.0% | Lines: 10 | Complexity: 3 App\Action\Admin\GetAdminInvestorLoansAction — Coverage: 0.0% | Lines: 9 | Complexity: 3 App\Action\Admin\GetCronJobStatusesAction — Coverage: 100.0% | Lines: 9 | Complexity: 4 App\Action\Document\GetDocumentsAction — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Action\Document\Provided\Admin\ListInvestorProvidedDocumentsAction — Coverage: 100.0% | Lines: 9 | Complexity: 2 App\Action\Document\ResendDocumentAction — Coverage: 100.0% | Lines: 9 | Complexity: 2 App\Action\Document\Submission\Admin\ListInvestorUploadsAction — Coverage: 100.0% | Lines: 9 | Complexity: 2 App\Action\Loan\AcceptLoanAction — Coverage: 0.0% | Lines: 9 | Complexity: 2 App\Action\Notification\GetMyNotificationPreferencesAction — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Action\SuperAdmin\GetErrorLogAction — Coverage: 0.0% | Lines: 9 | Complexity: 3 App\Action\SuperAdmin\ListUsersAction — Coverage: 88.9% | Lines: 9 | Complexity: 4 App\Action\Account\GetAccountAction — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Admin\CreateInvestorAccountAction — Coverage: 0.0% | Lines: 8 | Complexity: 2 App\Action\Auth\ConfirmEmailChangeAction — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Consent\GetMyConsentsAction — Coverage: 87.5% | Lines: 8 | Complexity: 3 App\Action\Document\CreateSigningSessionAction — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Document\Provided\DownloadMyProvidedDocumentAction — Coverage: 87.5% | Lines: 8 | Complexity: 3 App\Action\Document\Submission\Admin\ListPendingUploadsAction — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Document\Type\ListDocumentTypesAction — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Investor\DetachPaymentMethodAction — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Investor\SetDefaultPaymentMethodAction — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Admin\GetAdminStatsAction — Coverage: 100.0% | Lines: 7 | Complexity: 2 App\Action\Document\Admin\GetInvestorAgreementsAction — Coverage: 100.0% | Lines: 7 | Complexity: 2 App\Action\Document\GetDocumentAction — Coverage: 100.0% | Lines: 7 | Complexity: 2 App\Action\Document\Provided\Admin\DeleteProvidedDocumentAction — Coverage: 100.0% | Lines: 7 | Complexity: 2 App\Action\Home\VersionAction — Coverage: 0.0% | Lines: 7 | Complexity: 3 App\Action\Investor\CreateSetupIntentAction — Coverage: 100.0% | Lines: 7 | Complexity: 2 App\Action\Loan\GetMyLoansAction — Coverage: 0.0% | Lines: 7 | Complexity: 2 App\Action\Admin\GetAumHistoryAction — Coverage: 0.0% | Lines: 6 | Complexity: 2 App\Action\Loan\GetActiveLoansAction — Coverage: 0.0% | Lines: 6 | Complexity: 2 App\Action\Loan\GetApprovedLoansAction — Coverage: 0.0% | Lines: 6 | Complexity: 2 App\Action\Document\Provided\Admin\DownloadProvidedDocumentAction — Coverage: 100.0% | Lines: 5 | Complexity: 2 App\Action\Home\HomeAction — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Home\PingAction — Coverage: 100.0% | Lines: 2 | Complexity: 2

 

Sorted by descending CRAP (Change Risk Anti-Patterns) index.

Class CRAP Coverage
App\Action\Document\CreateRegistrationDocumentsAction2720.0%
App\Action\Auth\ResetPasswordAction900.0%
App\Action\Admin\CreateAdminTransactionAction720.0%
App\Action\SuperAdmin\ResolveErrorLogAction560.0%
App\Action\SuperAdmin\UpdateSystemSettingAction560.0%
App\Action\Admin\GetAdminTransactionsAction420.0%
App\Action\SuperAdmin\DeleteErrorLogsAction420.0%
App\Action\SuperAdmin\DeleteUserAction420.0%
App\Action\Funding\UpdateFundingRequestStatusAction300.0%
App\Action\Loan\DenyLoanAction300.0%
App\Action\Loan\GetLoanAction300.0%
App\Action\Auth\RegisterAction20.1992.2%
App\Action\Funding\ListPendingFundingRequestsAction200.0%
App\Action\Funding\SubmitFundingRequestAction200.0%
App\Action\Loan\ApproveLoanAction200.0%
App\Action\Loan\DeclineLoanAction200.0%
App\Action\Loan\GetPendingLoansAction200.0%
App\Action\Loan\RequestLoanAction200.0%
App\Action\Consent\UpdateMyConsentsAction16.3189.3%
App\Action\Notification\UpdateMyNotificationPreferencesAction14.6884.8%
App\Action\Admin\GetAdminInvestorLoansAction120.0%
App\Action\Home\VersionAction120.0%
App\Action\Loan\MakeAdditionalPaymentAction120.0%
App\Action\Notification\GetMyEmailsAction120.0%
App\Action\SuperAdmin\GetErrorLogAction120.0%
App\Action\SuperAdmin\ProjectInterestAction120.0%
App\Action\Disbursement\GetDisbursementHistoryAction11.7781.5%
App\Action\Document\DownloadDocumentAction11.0990.9%
App\Action\Admin\ImpersonateUserAction1098.2%
App\Action\Admin\SetInvestorPasswordAction1096.2%
App\Action\Admin\SendInvestorPasswordResetAction9.0591.3%
App\Action\Account\UpdateAccountStatusAction7100.0%
App\Action\Auth\ChangePasswordAction7100.0%
App\Action\Disbursement\MarkDisbursedAction7100.0%
App\Action\SuperAdmin\GenerateTransactionsAction6.0194.1%
App\Action\Admin\CreateInvestorAccountAction60.0%
App\Action\Admin\GetAumHistoryAction60.0%
App\Action\Admin\GetLendingActivityAction60.0%
App\Action\Admin\UpdateConfigurationAction6100.0%
App\Action\Contact\SubmitPublicContactAction695.5%
App\Action\Document\Admin\DownloadInvestorAgreementAction695.5%
App\Action\Loan\AcceptLoanAction60.0%
App\Action\Loan\GetActiveLoansAction60.0%
App\Action\Loan\GetApprovedLoansAction60.0%
App\Action\Loan\GetMyLoansAction60.0%
App\Action\Loan\MakePaymentAction60.0%
App\Action\SuperAdmin\AccrueInterestAction60.0%
App\Action\SuperAdmin\PostInterestAction60.0%
App\Action\Account\GetAccountTransactionsAction5100.0%
App\Action\Auth\ForgotPasswordAction5100.0%
App\Action\Auth\LoginAction5100.0%
App\Action\Document\Submission\DownloadMyUploadAction5.0094.7%
App\Action\Document\Submission\UploadDocumentAction596.0%
App\Action\Investor\UpdateInvestorStatusAction4.0289.5%
App\Action\Investor\UpdateKycStatusAction4.0289.5%
App\Action\SuperAdmin\ListUsersAction4.0288.9%
App\Action\SuperAdmin\DeleteTestDataAction4.0190.9%
App\Action\SuperAdmin\GetAccountsForSuperAdminAction4.0192.3%
App\Action\SuperAdmin\UpdateUserRoleAction4.0192.3%
App\Action\Admin\GetConfigurationAction4100.0%
App\Action\Admin\GetCronJobStatusesAction4100.0%
App\Action\Auth\LogoutAction4100.0%
App\Action\Auth\RefreshTokenAction4100.0%
App\Action\Disbursement\ListPendingDisbursementsAction4100.0%
App\Action\Document\Submission\Admin\DownloadUploadAction4100.0%
App\Action\SuperAdmin\CreateTestUserAction495.0%
App\Action\SuperAdmin\GenerateBulkDataAction4.0094.4%
App\Action\Consent\GetMyConsentsAction3.0287.5%
App\Action\Document\Provided\DownloadMyProvidedDocumentAction3.0287.5%
App\Action\Document\GetDocumentsAction3.0188.9%
App\Action\Document\Provided\ListMyProvidedDocumentsAction3.0190.9%
App\Action\Document\Submission\DiscardUploadAction3.0191.7%
App\Action\Document\Submission\ListMyUploadsAction3.0190.9%
App\Action\Notification\GetMyNotificationPreferencesAction3.0188.9%
App\Action\Account\GetAccountBalanceHistoryAction3100.0%
App\Action\Admin\GetAdminInvestorDetailAction3100.0%
App\Action\Auth\GetCurrentUserAction3.0093.8%
App\Action\Document\Provided\Admin\UploadProvidedDocumentAction3100.0%
App\Action\Document\Submission\Admin\RejectUploadAction3100.0%
App\Action\Investor\GetInvestorAction396.2%
App\Action\Investor\GetInvestorByUserIdAction3100.0%
App\Action\Account\CreateAccountAction2100.0%
App\Action\Account\GetAccountAction2100.0%
App\Action\Account\GetAccountByInvestorAction2100.0%
App\Action\Account\GetAccountSummaryAction2100.0%
App\Action\Admin\GetAdminInvestorsAction2100.0%
App\Action\Admin\GetAdminStatsAction2100.0%
App\Action\Auth\ConfirmEmailChangeAction2100.0%
App\Action\Auth\RequestEmailChangeAction2100.0%
App\Action\Contact\SubmitContactAction2100.0%
App\Action\Document\Admin\GetInvestorAgreementsAction2100.0%
App\Action\Document\CreateSigningSessionAction2100.0%
App\Action\Document\GetDocumentAction2100.0%
App\Action\Document\Provided\Admin\DeleteProvidedDocumentAction2100.0%
App\Action\Document\Provided\Admin\DownloadProvidedDocumentAction2100.0%
App\Action\Document\Provided\Admin\ListInvestorProvidedDocumentsAction2100.0%
App\Action\Document\ResendDocumentAction2100.0%
App\Action\Document\Submission\Admin\AcceptUploadAction2100.0%
App\Action\Document\Submission\Admin\GetUploadAction2100.0%
App\Action\Document\Submission\Admin\ListInvestorUploadsAction2100.0%
App\Action\Document\Submission\Admin\ListPendingUploadsAction2100.0%
App\Action\Document\Type\ListDocumentTypesAction2100.0%
App\Action\Home\PingAction2100.0%
App\Action\Investor\CreateInvestorAction2100.0%
App\Action\Investor\CreateSetupIntentAction2100.0%
App\Action\Investor\DetachPaymentMethodAction2100.0%
App\Action\Investor\ListPaymentMethodsAction2100.0%
App\Action\Investor\SetDefaultPaymentMethodAction2100.0%
App\Action\Investor\UpdateInvestorAction2100.0%
App\Action\Loan\CheckEligibilityAction2100.0%
App\Action\Stripe\WebhookAction2100.0%
App\Action\SuperAdmin\GetSystemSettingsAction2100.0%
App\Action\SuperAdmin\ListErrorLogsAction2100.0%
App\Action\Home\HomeAction1100.0%

Methods

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 5 10 15 Line Coverage (%) Cyclomatic Complexity App\Action\Admin\ImpersonateUserAction::__invoke — Coverage: 100.0% | Lines: 43 | Complexity: 7 App\Action\Consent\UpdateMyConsentsAction::__invoke — Coverage: 91.7% | Lines: 36 | Complexity: 7 App\Action\Account\CreateAccountAction::__invoke — Coverage: 100.0% | Lines: 32 | Complexity: 1 App\Action\Auth\RegisterAction::handleCompleteRegistration — Coverage: 100.0% | Lines: 31 | Complexity: 2 App\Action\Auth\LoginAction::__invoke — Coverage: 100.0% | Lines: 29 | Complexity: 1 App\Action\Admin\CreateAdminTransactionAction::__invoke — Coverage: 0.0% | Lines: 27 | Complexity: 7 App\Action\Account\GetAccountSummaryAction::__invoke — Coverage: 100.0% | Lines: 26 | Complexity: 1 App\Action\Disbursement\GetDisbursementHistoryAction::__invoke — Coverage: 80.8% | Lines: 26 | Complexity: 10 App\Action\Auth\ResetPasswordAction::__invoke — Coverage: 0.0% | Lines: 25 | Complexity: 8 App\Action\Investor\GetInvestorAction::__invoke — Coverage: 96.0% | Lines: 25 | Complexity: 2 App\Action\Investor\GetInvestorByUserIdAction::__invoke — Coverage: 100.0% | Lines: 25 | Complexity: 2 App\Action\Investor\UpdateInvestorAction::__invoke — Coverage: 100.0% | Lines: 25 | Complexity: 1 App\Action\Account\GetAccountTransactionsAction::__invoke — Coverage: 100.0% | Lines: 24 | Complexity: 4 App\Action\Disbursement\MarkDisbursedAction::__invoke — Coverage: 100.0% | Lines: 24 | Complexity: 6 App\Action\Document\Submission\UploadDocumentAction::__invoke — Coverage: 95.8% | Lines: 24 | Complexity: 4 App\Action\Document\CreateRegistrationDocumentsAction::createAndSendDocument — Coverage: 0.0% | Lines: 23 | Complexity: 2 App\Action\Investor\CreateInvestorAction::__invoke — Coverage: 100.0% | Lines: 23 | Complexity: 1 App\Action\Account\GetAccountByInvestorAction::__invoke — Coverage: 100.0% | Lines: 22 | Complexity: 1 App\Action\Auth\RefreshTokenAction::__invoke — Coverage: 100.0% | Lines: 22 | Complexity: 3 App\Action\Auth\RegisterAction::handleSimpleRegistration — Coverage: 100.0% | Lines: 22 | Complexity: 1 App\Action\SuperAdmin\ResolveErrorLogAction::__invoke — Coverage: 0.0% | Lines: 22 | Complexity: 6 App\Action\Document\Provided\Admin\UploadProvidedDocumentAction::__invoke — Coverage: 100.0% | Lines: 21 | Complexity: 2 App\Action\Account\UpdateAccountStatusAction::__invoke — Coverage: 100.0% | Lines: 20 | Complexity: 6 App\Action\Admin\GetAdminTransactionsAction::__invoke — Coverage: 0.0% | Lines: 20 | Complexity: 5 App\Action\Auth\ChangePasswordAction::__invoke — Coverage: 100.0% | Lines: 20 | Complexity: 6 App\Action\Loan\ApproveLoanAction::__invoke — Coverage: 0.0% | Lines: 20 | Complexity: 3 App\Action\Loan\DenyLoanAction::__invoke — Coverage: 0.0% | Lines: 20 | Complexity: 4 App\Action\SuperAdmin\ListErrorLogsAction::__invoke — Coverage: 100.0% | Lines: 20 | Complexity: 1 App\Action\SuperAdmin\UpdateSystemSettingAction::__invoke — Coverage: 0.0% | Lines: 20 | Complexity: 6 App\Action\Auth\RegisterAction::validateCompleteRegistrationInput — Coverage: 84.2% | Lines: 19 | Complexity: 3 App\Action\Consent\UpdateMyConsentsAction::validateConsents — Coverage: 84.2% | Lines: 19 | Complexity: 8 App\Action\SuperAdmin\CreateTestUserAction::__invoke — Coverage: 94.7% | Lines: 19 | Complexity: 3 App\Action\Document\CreateRegistrationDocumentsAction::__invoke — Coverage: 0.0% | Lines: 18 | Complexity: 5 App\Action\Investor\UpdateInvestorStatusAction::__invoke — Coverage: 88.9% | Lines: 18 | Complexity: 3 App\Action\Investor\UpdateKycStatusAction::__invoke — Coverage: 88.9% | Lines: 18 | Complexity: 3 App\Action\Loan\GetPendingLoansAction::__invoke — Coverage: 0.0% | Lines: 18 | Complexity: 3 App\Action\SuperAdmin\DeleteErrorLogsAction::__invoke — Coverage: 0.0% | Lines: 18 | Complexity: 5 App\Action\Admin\UpdateConfigurationAction::__invoke — Coverage: 100.0% | Lines: 17 | Complexity: 5 App\Action\Auth\RegisterAction::getClientIp — Coverage: 70.6% | Lines: 17 | Complexity: 6 App\Action\Investor\ListPaymentMethodsAction::__invoke — Coverage: 100.0% | Lines: 17 | Complexity: 1 App\Action\SuperAdmin\GenerateBulkDataAction::__invoke — Coverage: 94.1% | Lines: 17 | Complexity: 3 App\Action\Admin\GetLendingActivityAction::__invoke — Coverage: 0.0% | Lines: 16 | Complexity: 1 App\Action\Contact\SubmitPublicContactAction::__invoke — Coverage: 100.0% | Lines: 16 | Complexity: 2 App\Action\Funding\SubmitFundingRequestAction::__invoke — Coverage: 0.0% | Lines: 16 | Complexity: 3 App\Action\Funding\UpdateFundingRequestStatusAction::__invoke — Coverage: 0.0% | Lines: 16 | Complexity: 4 App\Action\Loan\MakeAdditionalPaymentAction::__invoke — Coverage: 0.0% | Lines: 16 | Complexity: 2 App\Action\Loan\RequestLoanAction::__invoke — Coverage: 0.0% | Lines: 16 | Complexity: 3 App\Action\Notification\UpdateMyNotificationPreferencesAction::__invoke — Coverage: 93.8% | Lines: 16 | Complexity: 4 App\Action\Notification\UpdateMyNotificationPreferencesAction::validatePreferences — Coverage: 75.0% | Lines: 16 | Complexity: 9 App\Action\SuperAdmin\GenerateTransactionsAction::__invoke — Coverage: 93.8% | Lines: 16 | Complexity: 5 App\Action\Admin\GetConfigurationAction::__invoke — Coverage: 100.0% | Lines: 15 | Complexity: 3 App\Action\Auth\GetCurrentUserAction::__invoke — Coverage: 93.3% | Lines: 15 | Complexity: 2 App\Action\Document\Submission\DownloadMyUploadAction::__invoke — Coverage: 93.3% | Lines: 15 | Complexity: 2 App\Action\SuperAdmin\DeleteUserAction::__invoke — Coverage: 0.0% | Lines: 15 | Complexity: 5 App\Action\Document\Admin\DownloadInvestorAgreementAction::__invoke — Coverage: 100.0% | Lines: 14 | Complexity: 2 App\Action\Admin\SetInvestorPasswordAction::__invoke — Coverage: 100.0% | Lines: 13 | Complexity: 3 App\Action\Auth\LogoutAction::__invoke — Coverage: 100.0% | Lines: 13 | Complexity: 3 App\Action\Document\CreateRegistrationDocumentsAction::saveDocument — Coverage: 0.0% | Lines: 13 | Complexity: 2 App\Action\Document\DownloadDocumentAction::getOwnedDocumentName — Coverage: 84.6% | Lines: 13 | Complexity: 6 App\Action\Loan\CheckEligibilityAction::__invoke — Coverage: 100.0% | Lines: 13 | Complexity: 1 App\Action\Notification\GetMyEmailsAction::__invoke — Coverage: 0.0% | Lines: 13 | Complexity: 2 App\Action\Admin\SendInvestorPasswordResetAction::requireAdmin — Coverage: 91.7% | Lines: 12 | Complexity: 6 App\Action\Admin\SetInvestorPasswordAction::requireAdmin — Coverage: 91.7% | Lines: 12 | Complexity: 6 App\Action\Auth\RequestEmailChangeAction::__invoke — Coverage: 100.0% | Lines: 12 | Complexity: 1 App\Action\Contact\SubmitContactAction::__invoke — Coverage: 100.0% | Lines: 12 | Complexity: 1 App\Action\Document\DownloadDocumentAction::__invoke — Coverage: 100.0% | Lines: 12 | Complexity: 1 App\Action\Document\Submission\Admin\DownloadUploadAction::__invoke — Coverage: 100.0% | Lines: 12 | Complexity: 1 App\Action\Document\Submission\Admin\RejectUploadAction::__invoke — Coverage: 100.0% | Lines: 12 | Complexity: 2 App\Action\Loan\DeclineLoanAction::__invoke — Coverage: 0.0% | Lines: 12 | Complexity: 3 App\Action\Loan\MakePaymentAction::__invoke — Coverage: 0.0% | Lines: 12 | Complexity: 1 App\Action\SuperAdmin\GetAccountsForSuperAdminAction::__invoke — Coverage: 91.7% | Lines: 12 | Complexity: 3 App\Action\SuperAdmin\UpdateUserRoleAction::__invoke — Coverage: 91.7% | Lines: 12 | Complexity: 3 App\Action\Admin\GetAdminInvestorsAction::__invoke — Coverage: 100.0% | Lines: 11 | Complexity: 1 App\Action\Auth\ForgotPasswordAction::__invoke — Coverage: 100.0% | Lines: 11 | Complexity: 4 App\Action\Disbursement\ListPendingDisbursementsAction::__invoke — Coverage: 100.0% | Lines: 11 | Complexity: 3 App\Action\Document\Submission\DiscardUploadAction::__invoke — Coverage: 90.9% | Lines: 11 | Complexity: 2 App\Action\Funding\ListPendingFundingRequestsAction::__invoke — Coverage: 0.0% | Lines: 11 | Complexity: 3 App\Action\Loan\GetLoanAction::__invoke — Coverage: 0.0% | Lines: 11 | Complexity: 4 App\Action\Admin\SendInvestorPasswordResetAction::__invoke — Coverage: 90.0% | Lines: 10 | Complexity: 2 App\Action\Document\Provided\ListMyProvidedDocumentsAction::__invoke — Coverage: 90.0% | Lines: 10 | Complexity: 2 App\Action\Document\Submission\Admin\AcceptUploadAction::__invoke — Coverage: 100.0% | Lines: 10 | Complexity: 1 App\Action\Document\Submission\ListMyUploadsAction::__invoke — Coverage: 90.0% | Lines: 10 | Complexity: 2 App\Action\Stripe\WebhookAction::__invoke — Coverage: 100.0% | Lines: 10 | Complexity: 1 App\Action\SuperAdmin\AccrueInterestAction::__invoke — Coverage: 0.0% | Lines: 10 | Complexity: 1 App\Action\SuperAdmin\DeleteTestDataAction::__invoke — Coverage: 90.0% | Lines: 10 | Complexity: 3 App\Action\Admin\ImpersonateUserAction::logImpersonation — Coverage: 88.9% | Lines: 9 | Complexity: 2 App\Action\Document\CreateRegistrationDocumentsAction::sendWhenDraftReady — Coverage: 0.0% | Lines: 9 | Complexity: 4 App\Action\Document\Submission\Admin\GetUploadAction::__invoke — Coverage: 100.0% | Lines: 9 | Complexity: 1 App\Action\SuperAdmin\PostInterestAction::__invoke — Coverage: 0.0% | Lines: 9 | Complexity: 1 App\Action\SuperAdmin\ProjectInterestAction::__invoke — Coverage: 0.0% | Lines: 9 | Complexity: 2 App\Action\Account\GetAccountBalanceHistoryAction::__invoke — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Admin\GetAdminInvestorDetailAction::__invoke — Coverage: 100.0% | Lines: 8 | Complexity: 2 App\Action\Admin\GetAdminInvestorLoansAction::__invoke — Coverage: 0.0% | Lines: 8 | Complexity: 2 App\Action\Admin\GetCronJobStatusesAction::__invoke — Coverage: 100.0% | Lines: 8 | Complexity: 3 App\Action\Document\GetDocumentsAction::__invoke — Coverage: 87.5% | Lines: 8 | Complexity: 2 App\Action\Document\Provided\Admin\ListInvestorProvidedDocumentsAction::__invoke — Coverage: 100.0% | Lines: 8 | Complexity: 1 App\Action\Document\ResendDocumentAction::__invoke — Coverage: 100.0% | Lines: 8 | Complexity: 1 App\Action\Document\Submission\Admin\ListInvestorUploadsAction::__invoke — Coverage: 100.0% | Lines: 8 | Complexity: 1 App\Action\Loan\AcceptLoanAction::__invoke — Coverage: 0.0% | Lines: 8 | Complexity: 1 App\Action\Notification\GetMyNotificationPreferencesAction::__invoke — Coverage: 87.5% | Lines: 8 | Complexity: 2 App\Action\SuperAdmin\GetErrorLogAction::__invoke — Coverage: 0.0% | Lines: 8 | Complexity: 2 App\Action\SuperAdmin\GetSystemSettingsAction::__invoke — Coverage: 100.0% | Lines: 8 | Complexity: 1 App\Action\SuperAdmin\ListUsersAction::__invoke — Coverage: 87.5% | Lines: 8 | Complexity: 3 App\Action\Admin\CreateInvestorAccountAction::__invoke — Coverage: 0.0% | Lines: 7 | Complexity: 1 App\Action\Auth\ConfirmEmailChangeAction::__invoke — Coverage: 100.0% | Lines: 7 | Complexity: 1 App\Action\Consent\GetMyConsentsAction::__invoke — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Action\Document\Admin\DownloadInvestorAgreementAction::makeAttachmentFilename — Coverage: 85.7% | Lines: 7 | Complexity: 3 App\Action\Document\CreateSigningSessionAction::__invoke — Coverage: 100.0% | Lines: 7 | Complexity: 1 App\Action\Document\DownloadDocumentAction::makeAttachmentFilename — Coverage: 85.7% | Lines: 7 | Complexity: 3 App\Action\Document\Provided\DownloadMyProvidedDocumentAction::__invoke — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Action\Document\Submission\Admin\ListPendingUploadsAction::__invoke — Coverage: 100.0% | Lines: 7 | Complexity: 1 App\Action\Document\Type\ListDocumentTypesAction::__invoke — Coverage: 100.0% | Lines: 7 | Complexity: 1 App\Action\Investor\DetachPaymentMethodAction::__invoke — Coverage: 100.0% | Lines: 7 | Complexity: 1 App\Action\Investor\SetDefaultPaymentMethodAction::__invoke — Coverage: 100.0% | Lines: 7 | Complexity: 1 App\Action\Account\GetAccountAction::__invoke — Coverage: 100.0% | Lines: 6 | Complexity: 1 App\Action\Auth\LoginAction::validateInput — Coverage: 100.0% | Lines: 6 | Complexity: 3 App\Action\Auth\RegisterAction::validateSimpleRegistrationInput — Coverage: 100.0% | Lines: 6 | Complexity: 3 App\Action\Document\Admin\GetInvestorAgreementsAction::__invoke — Coverage: 100.0% | Lines: 6 | Complexity: 1 App\Action\Document\CreateRegistrationDocumentsAction::updateDocumentStatus — Coverage: 0.0% | Lines: 6 | Complexity: 2 App\Action\Document\GetDocumentAction::__invoke — Coverage: 100.0% | Lines: 6 | Complexity: 1 App\Action\Document\Provided\Admin\DeleteProvidedDocumentAction::__invoke — Coverage: 100.0% | Lines: 6 | Complexity: 1 App\Action\Home\VersionAction::__invoke — Coverage: 0.0% | Lines: 6 | Complexity: 2 App\Action\Investor\CreateSetupIntentAction::__invoke — Coverage: 100.0% | Lines: 6 | Complexity: 1 App\Action\Loan\GetMyLoansAction::__invoke — Coverage: 0.0% | Lines: 6 | Complexity: 1 App\Action\Admin\GetAdminStatsAction::__invoke — Coverage: 100.0% | Lines: 5 | Complexity: 1 App\Action\Admin\GetAumHistoryAction::__invoke — Coverage: 0.0% | Lines: 5 | Complexity: 1 App\Action\Auth\RegisterAction::__invoke — Coverage: 100.0% | Lines: 5 | Complexity: 2 App\Action\Contact\SubmitPublicContactAction::clientIp — Coverage: 80.0% | Lines: 5 | Complexity: 3 App\Action\Loan\GetActiveLoansAction::__invoke — Coverage: 0.0% | Lines: 5 | Complexity: 1 App\Action\Loan\GetApprovedLoansAction::__invoke — Coverage: 0.0% | Lines: 5 | Complexity: 1 App\Action\Document\Provided\Admin\DownloadProvidedDocumentAction::__invoke — Coverage: 100.0% | Lines: 4 | Complexity: 1 App\Action\Admin\ImpersonateUserAction::__construct — Coverage: 100.0% | Lines: 3 | Complexity: 1 App\Action\Document\Submission\Admin\DownloadUploadAction::sanitiseAttachmentFilename — Coverage: 100.0% | Lines: 3 | Complexity: 2 App\Action\Document\Submission\DownloadMyUploadAction::sanitiseAttachmentFilename — Coverage: 100.0% | Lines: 3 | Complexity: 2 App\Action\Account\CreateAccountAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Account\GetAccountAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Account\GetAccountBalanceHistoryAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Admin\GetAdminInvestorDetailAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Admin\GetAdminInvestorsAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Admin\GetAdminStatsAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Home\HomeAction::__invoke — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Investor\CreateInvestorAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\SuperAdmin\DeleteErrorLogsAction::__construct — Coverage: 0.0% | Lines: 2 | Complexity: 1 App\Action\SuperAdmin\GetSystemSettingsAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\SuperAdmin\ListErrorLogsAction::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Action\Account\GetAccountByInvestorAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Account\GetAccountSummaryAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Account\GetAccountTransactionsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Account\UpdateAccountStatusAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Admin\CreateAdminTransactionAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Admin\CreateInvestorAccountAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Admin\GetAdminInvestorLoansAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Admin\GetAdminTransactionsAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Admin\GetAumHistoryAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Admin\GetConfigurationAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Admin\GetCronJobStatusesAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Admin\GetLendingActivityAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Admin\SendInvestorPasswordResetAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Admin\SetInvestorPasswordAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Admin\UpdateConfigurationAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\ChangePasswordAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\ConfirmEmailChangeAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\ForgotPasswordAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\GetCurrentUserAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\LoginAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\LogoutAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\RefreshTokenAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\RegisterAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\RegisterAction::isCompleteRegistration — Coverage: 100.0% | Lines: 1 | Complexity: 2 App\Action\Auth\RequestEmailChangeAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Auth\ResetPasswordAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Consent\GetMyConsentsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Consent\UpdateMyConsentsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Contact\SubmitContactAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Contact\SubmitPublicContactAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Disbursement\GetDisbursementHistoryAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Disbursement\ListPendingDisbursementsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Disbursement\MarkDisbursedAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Admin\DownloadInvestorAgreementAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Admin\GetInvestorAgreementsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\CreateRegistrationDocumentsAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Document\CreateSigningSessionAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\DownloadDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\GetDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\GetDocumentsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Provided\Admin\DeleteProvidedDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Provided\Admin\DownloadProvidedDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Provided\Admin\ListInvestorProvidedDocumentsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Provided\Admin\UploadProvidedDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Provided\DownloadMyProvidedDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Provided\ListMyProvidedDocumentsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\ResendDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\Admin\AcceptUploadAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\Admin\DownloadUploadAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\Admin\GetUploadAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\Admin\ListInvestorUploadsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\Admin\ListPendingUploadsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\Admin\RejectUploadAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\DiscardUploadAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\DownloadMyUploadAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\ListMyUploadsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Submission\UploadDocumentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Document\Type\ListDocumentTypesAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Funding\ListPendingFundingRequestsAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Funding\SubmitFundingRequestAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Funding\UpdateFundingRequestStatusAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Home\PingAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Home\PingAction::__invoke — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Home\VersionAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Investor\CreateSetupIntentAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\DetachPaymentMethodAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\GetInvestorAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\GetInvestorByUserIdAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\ListPaymentMethodsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\SetDefaultPaymentMethodAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\UpdateInvestorAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\UpdateInvestorStatusAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Investor\UpdateKycStatusAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Loan\AcceptLoanAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\ApproveLoanAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\CheckEligibilityAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Loan\DeclineLoanAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\DenyLoanAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\GetActiveLoansAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\GetApprovedLoansAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\GetLoanAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\GetMyLoansAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\GetPendingLoansAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\MakeAdditionalPaymentAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\MakePaymentAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Loan\RequestLoanAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Notification\GetMyEmailsAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\Notification\GetMyNotificationPreferencesAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Notification\UpdateMyNotificationPreferencesAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\Stripe\WebhookAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\AccrueInterestAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\CreateTestUserAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\DeleteTestDataAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\DeleteUserAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\GenerateBulkDataAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\GenerateTransactionsAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\GetAccountsForSuperAdminAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\GetErrorLogAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\ListUsersAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\PostInterestAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\ProjectInterestAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\ResolveErrorLogAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\UpdateSystemSettingAction::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Action\SuperAdmin\UpdateUserRoleAction::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

Sorted by descending CRAP (Change Risk Anti-Patterns) index.

Method CRAP Coverage
App\Action\Auth\ResetPasswordAction::__invoke720.0%
App\Action\Admin\CreateAdminTransactionAction::__invoke560.0%
App\Action\SuperAdmin\ResolveErrorLogAction::__invoke420.0%
App\Action\SuperAdmin\UpdateSystemSettingAction::__invoke420.0%
App\Action\Admin\GetAdminTransactionsAction::__invoke300.0%
App\Action\Document\CreateRegistrationDocumentsAction::__invoke300.0%
App\Action\SuperAdmin\DeleteErrorLogsAction::__invoke300.0%
App\Action\SuperAdmin\DeleteUserAction::__invoke300.0%
App\Action\Document\CreateRegistrationDocumentsAction::sendWhenDraftReady200.0%
App\Action\Funding\UpdateFundingRequestStatusAction::__invoke200.0%
App\Action\Loan\DenyLoanAction::__invoke200.0%
App\Action\Loan\GetLoanAction::__invoke200.0%
App\Action\Funding\ListPendingFundingRequestsAction::__invoke120.0%
App\Action\Funding\SubmitFundingRequestAction::__invoke120.0%
App\Action\Loan\ApproveLoanAction::__invoke120.0%
App\Action\Loan\DeclineLoanAction::__invoke120.0%
App\Action\Loan\GetPendingLoansAction::__invoke120.0%
App\Action\Loan\RequestLoanAction::__invoke120.0%
App\Action\Disbursement\GetDisbursementHistoryAction::__invoke10.7180.8%
App\Action\Notification\UpdateMyNotificationPreferencesAction::validatePreferences10.2775.0%
App\Action\Consent\UpdateMyConsentsAction::validateConsents8.2584.2%
App\Action\Consent\UpdateMyConsentsAction::__invoke7.0391.7%
App\Action\Admin\ImpersonateUserAction::__invoke7100.0%
App\Action\Auth\RegisterAction::getClientIp6.9270.6%
App\Action\Document\DownloadDocumentAction::getOwnedDocumentName6.1384.6%
App\Action\Admin\SendInvestorPasswordResetAction::requireAdmin6.0291.7%
App\Action\Admin\SetInvestorPasswordAction::requireAdmin6.0291.7%
App\Action\Account\UpdateAccountStatusAction::__invoke6100.0%
App\Action\Admin\GetAdminInvestorLoansAction::__invoke60.0%
App\Action\Auth\ChangePasswordAction::__invoke6100.0%
App\Action\Disbursement\MarkDisbursedAction::__invoke6100.0%
App\Action\Document\CreateRegistrationDocumentsAction::createAndSendDocument60.0%
App\Action\Document\CreateRegistrationDocumentsAction::saveDocument60.0%
App\Action\Document\CreateRegistrationDocumentsAction::updateDocumentStatus60.0%
App\Action\Home\VersionAction::__invoke60.0%
App\Action\Loan\MakeAdditionalPaymentAction::__invoke60.0%
App\Action\Notification\GetMyEmailsAction::__invoke60.0%
App\Action\SuperAdmin\GetErrorLogAction::__invoke60.0%
App\Action\SuperAdmin\ProjectInterestAction::__invoke60.0%
App\Action\SuperAdmin\GenerateTransactionsAction::__invoke5.0193.8%
App\Action\Admin\UpdateConfigurationAction::__invoke5100.0%
App\Action\Account\GetAccountTransactionsAction::__invoke4100.0%
App\Action\Auth\ForgotPasswordAction::__invoke4100.0%
App\Action\Document\Submission\UploadDocumentAction::__invoke495.8%
App\Action\Notification\UpdateMyNotificationPreferencesAction::__invoke4.0093.8%
App\Action\Contact\SubmitPublicContactAction::clientIp3.0780.0%
App\Action\Auth\RegisterAction::validateCompleteRegistrationInput3.0484.2%
App\Action\Document\Admin\DownloadInvestorAgreementAction::makeAttachmentFilename3.0385.7%
App\Action\Document\DownloadDocumentAction::makeAttachmentFilename3.0385.7%
App\Action\SuperAdmin\ListUsersAction::__invoke3.0287.5%
App\Action\Investor\UpdateInvestorStatusAction::__invoke3.0188.9%
App\Action\Investor\UpdateKycStatusAction::__invoke3.0188.9%
App\Action\SuperAdmin\DeleteTestDataAction::__invoke3.0190.0%
App\Action\SuperAdmin\GetAccountsForSuperAdminAction::__invoke3.0191.7%
App\Action\SuperAdmin\UpdateUserRoleAction::__invoke3.0191.7%
App\Action\Admin\GetConfigurationAction::__invoke3100.0%
App\Action\Admin\GetCronJobStatusesAction::__invoke3100.0%
App\Action\Admin\SetInvestorPasswordAction::__invoke3100.0%
App\Action\Auth\LoginAction::validateInput3100.0%
App\Action\Auth\LogoutAction::__invoke3100.0%
App\Action\Auth\RefreshTokenAction::__invoke3100.0%
App\Action\Auth\RegisterAction::validateSimpleRegistrationInput3100.0%
App\Action\Disbursement\ListPendingDisbursementsAction::__invoke3100.0%
App\Action\SuperAdmin\CreateTestUserAction::__invoke3.0094.7%
App\Action\SuperAdmin\GenerateBulkDataAction::__invoke3.0094.1%
App\Action\Admin\ImpersonateUserAction::logImpersonation2.0188.9%
App\Action\Consent\GetMyConsentsAction::__invoke2.0185.7%
App\Action\Document\GetDocumentsAction::__invoke2.0187.5%
App\Action\Document\Provided\DownloadMyProvidedDocumentAction::__invoke2.0185.7%
App\Action\Notification\GetMyNotificationPreferencesAction::__invoke2.0187.5%
App\Action\Account\GetAccountBalanceHistoryAction::__invoke2100.0%
App\Action\Admin\CreateAdminTransactionAction::__construct20.0%
App\Action\Admin\CreateInvestorAccountAction::__construct20.0%
App\Action\Admin\CreateInvestorAccountAction::__invoke20.0%
App\Action\Admin\GetAdminInvestorDetailAction::__invoke2100.0%
App\Action\Admin\GetAdminInvestorLoansAction::__construct20.0%
App\Action\Admin\GetAdminTransactionsAction::__construct20.0%
App\Action\Admin\GetAumHistoryAction::__construct20.0%
App\Action\Admin\GetAumHistoryAction::__invoke20.0%
App\Action\Admin\GetLendingActivityAction::__construct20.0%
App\Action\Admin\GetLendingActivityAction::__invoke20.0%
App\Action\Admin\SendInvestorPasswordResetAction::__invoke2.0090.0%
App\Action\Auth\GetCurrentUserAction::__invoke2.0093.3%
App\Action\Auth\RegisterAction::__invoke2100.0%
App\Action\Auth\RegisterAction::isCompleteRegistration2100.0%
App\Action\Auth\RegisterAction::handleCompleteRegistration2100.0%
App\Action\Auth\ResetPasswordAction::__construct20.0%
App\Action\Contact\SubmitPublicContactAction::__invoke2100.0%
App\Action\Document\Admin\DownloadInvestorAgreementAction::__invoke2100.0%
App\Action\Document\CreateRegistrationDocumentsAction::__construct20.0%
App\Action\Document\Provided\Admin\UploadProvidedDocumentAction::__invoke2100.0%
App\Action\Document\Provided\ListMyProvidedDocumentsAction::__invoke2.0090.0%
App\Action\Document\Submission\Admin\DownloadUploadAction::sanitiseAttachmentFilename2100.0%
App\Action\Document\Submission\Admin\RejectUploadAction::__invoke2100.0%
App\Action\Document\Submission\DiscardUploadAction::__invoke2.0090.9%
App\Action\Document\Submission\DownloadMyUploadAction::__invoke2.0093.3%
App\Action\Document\Submission\DownloadMyUploadAction::sanitiseAttachmentFilename2100.0%
App\Action\Document\Submission\ListMyUploadsAction::__invoke2.0090.0%
App\Action\Funding\ListPendingFundingRequestsAction::__construct20.0%
App\Action\Funding\SubmitFundingRequestAction::__construct20.0%
App\Action\Funding\UpdateFundingRequestStatusAction::__construct20.0%
App\Action\Home\VersionAction::__construct20.0%
App\Action\Investor\GetInvestorAction::__invoke296.0%
App\Action\Investor\GetInvestorByUserIdAction::__invoke2100.0%
App\Action\Loan\AcceptLoanAction::__construct20.0%
App\Action\Loan\AcceptLoanAction::__invoke20.0%
App\Action\Loan\ApproveLoanAction::__construct20.0%
App\Action\Loan\DeclineLoanAction::__construct20.0%
App\Action\Loan\DenyLoanAction::__construct20.0%
App\Action\Loan\GetActiveLoansAction::__construct20.0%
App\Action\Loan\GetActiveLoansAction::__invoke20.0%
App\Action\Loan\GetApprovedLoansAction::__construct20.0%
App\Action\Loan\GetApprovedLoansAction::__invoke20.0%
App\Action\Loan\GetLoanAction::__construct20.0%
App\Action\Loan\GetMyLoansAction::__construct20.0%
App\Action\Loan\GetMyLoansAction::__invoke20.0%
App\Action\Loan\GetPendingLoansAction::__construct20.0%
App\Action\Loan\MakeAdditionalPaymentAction::__construct20.0%
App\Action\Loan\MakePaymentAction::__construct20.0%
App\Action\Loan\MakePaymentAction::__invoke20.0%
App\Action\Loan\RequestLoanAction::__construct20.0%
App\Action\Notification\GetMyEmailsAction::__construct20.0%
App\Action\SuperAdmin\AccrueInterestAction::__construct20.0%
App\Action\SuperAdmin\AccrueInterestAction::__invoke20.0%
App\Action\SuperAdmin\DeleteErrorLogsAction::__construct20.0%
App\Action\SuperAdmin\DeleteUserAction::__construct20.0%
App\Action\SuperAdmin\GetErrorLogAction::__construct20.0%
App\Action\SuperAdmin\PostInterestAction::__construct20.0%
App\Action\SuperAdmin\PostInterestAction::__invoke20.0%
App\Action\SuperAdmin\ProjectInterestAction::__construct20.0%
App\Action\SuperAdmin\ResolveErrorLogAction::__construct20.0%
App\Action\SuperAdmin\UpdateSystemSettingAction::__construct20.0%
App\Action\Account\CreateAccountAction::__construct1100.0%
App\Action\Account\CreateAccountAction::__invoke1100.0%
App\Action\Account\GetAccountAction::__construct1100.0%
App\Action\Account\GetAccountAction::__invoke1100.0%
App\Action\Account\GetAccountBalanceHistoryAction::__construct1100.0%
App\Action\Account\GetAccountByInvestorAction::__construct1100.0%
App\Action\Account\GetAccountByInvestorAction::__invoke1100.0%
App\Action\Account\GetAccountSummaryAction::__construct1100.0%
App\Action\Account\GetAccountSummaryAction::__invoke1100.0%
App\Action\Account\GetAccountTransactionsAction::__construct1100.0%
App\Action\Account\UpdateAccountStatusAction::__construct1100.0%
App\Action\Admin\GetAdminInvestorDetailAction::__construct1100.0%
App\Action\Admin\GetAdminInvestorsAction::__construct1100.0%
App\Action\Admin\GetAdminInvestorsAction::__invoke1100.0%
App\Action\Admin\GetAdminStatsAction::__construct1100.0%
App\Action\Admin\GetAdminStatsAction::__invoke1100.0%
App\Action\Admin\GetConfigurationAction::__construct1100.0%
App\Action\Admin\GetCronJobStatusesAction::__construct1100.0%
App\Action\Admin\ImpersonateUserAction::__construct1100.0%
App\Action\Admin\SendInvestorPasswordResetAction::__construct1100.0%
App\Action\Admin\SetInvestorPasswordAction::__construct1100.0%
App\Action\Admin\UpdateConfigurationAction::__construct1100.0%
App\Action\Auth\ChangePasswordAction::__construct1100.0%
App\Action\Auth\ConfirmEmailChangeAction::__construct1100.0%
App\Action\Auth\ConfirmEmailChangeAction::__invoke1100.0%
App\Action\Auth\ForgotPasswordAction::__construct1100.0%
App\Action\Auth\GetCurrentUserAction::__construct1100.0%
App\Action\Auth\LoginAction::__construct1100.0%
App\Action\Auth\LoginAction::__invoke1100.0%
App\Action\Auth\LogoutAction::__construct1100.0%
App\Action\Auth\RefreshTokenAction::__construct1100.0%
App\Action\Auth\RegisterAction::__construct1100.0%
App\Action\Auth\RegisterAction::handleSimpleRegistration1100.0%
App\Action\Auth\RequestEmailChangeAction::__construct1100.0%
App\Action\Auth\RequestEmailChangeAction::__invoke1100.0%
App\Action\Consent\GetMyConsentsAction::__construct1100.0%
App\Action\Consent\UpdateMyConsentsAction::__construct1100.0%
App\Action\Contact\SubmitContactAction::__construct1100.0%
App\Action\Contact\SubmitContactAction::__invoke1100.0%
App\Action\Contact\SubmitPublicContactAction::__construct1100.0%
App\Action\Disbursement\GetDisbursementHistoryAction::__construct1100.0%
App\Action\Disbursement\ListPendingDisbursementsAction::__construct1100.0%
App\Action\Disbursement\MarkDisbursedAction::__construct1100.0%
App\Action\Document\Admin\DownloadInvestorAgreementAction::__construct1100.0%
App\Action\Document\Admin\GetInvestorAgreementsAction::__construct1100.0%
App\Action\Document\Admin\GetInvestorAgreementsAction::__invoke1100.0%
App\Action\Document\CreateSigningSessionAction::__construct1100.0%
App\Action\Document\CreateSigningSessionAction::__invoke1100.0%
App\Action\Document\DownloadDocumentAction::__construct1100.0%
App\Action\Document\DownloadDocumentAction::__invoke1100.0%
App\Action\Document\GetDocumentAction::__construct1100.0%
App\Action\Document\GetDocumentAction::__invoke1100.0%
App\Action\Document\GetDocumentsAction::__construct1100.0%
App\Action\Document\Provided\Admin\DeleteProvidedDocumentAction::__construct1100.0%
App\Action\Document\Provided\Admin\DeleteProvidedDocumentAction::__invoke1100.0%
App\Action\Document\Provided\Admin\DownloadProvidedDocumentAction::__construct1100.0%
App\Action\Document\Provided\Admin\DownloadProvidedDocumentAction::__invoke1100.0%
App\Action\Document\Provided\Admin\ListInvestorProvidedDocumentsAction::__construct1100.0%
App\Action\Document\Provided\Admin\ListInvestorProvidedDocumentsAction::__invoke1100.0%
App\Action\Document\Provided\Admin\UploadProvidedDocumentAction::__construct1100.0%
App\Action\Document\Provided\DownloadMyProvidedDocumentAction::__construct1100.0%
App\Action\Document\Provided\ListMyProvidedDocumentsAction::__construct1100.0%
App\Action\Document\ResendDocumentAction::__construct1100.0%
App\Action\Document\ResendDocumentAction::__invoke1100.0%
App\Action\Document\Submission\Admin\AcceptUploadAction::__construct1100.0%
App\Action\Document\Submission\Admin\AcceptUploadAction::__invoke1100.0%
App\Action\Document\Submission\Admin\DownloadUploadAction::__construct1100.0%
App\Action\Document\Submission\Admin\DownloadUploadAction::__invoke1100.0%
App\Action\Document\Submission\Admin\GetUploadAction::__construct1100.0%
App\Action\Document\Submission\Admin\GetUploadAction::__invoke1100.0%
App\Action\Document\Submission\Admin\ListInvestorUploadsAction::__construct1100.0%
App\Action\Document\Submission\Admin\ListInvestorUploadsAction::__invoke1100.0%
App\Action\Document\Submission\Admin\ListPendingUploadsAction::__construct1100.0%
App\Action\Document\Submission\Admin\ListPendingUploadsAction::__invoke1100.0%
App\Action\Document\Submission\Admin\RejectUploadAction::__construct1100.0%
App\Action\Document\Submission\DiscardUploadAction::__construct1100.0%
App\Action\Document\Submission\DownloadMyUploadAction::__construct1100.0%
App\Action\Document\Submission\ListMyUploadsAction::__construct1100.0%
App\Action\Document\Submission\UploadDocumentAction::__construct1100.0%
App\Action\Document\Type\ListDocumentTypesAction::__construct1100.0%
App\Action\Document\Type\ListDocumentTypesAction::__invoke1100.0%
App\Action\Home\HomeAction::__invoke1100.0%
App\Action\Home\PingAction::__construct1100.0%
App\Action\Home\PingAction::__invoke1100.0%
App\Action\Investor\CreateInvestorAction::__construct1100.0%
App\Action\Investor\CreateInvestorAction::__invoke1100.0%
App\Action\Investor\CreateSetupIntentAction::__construct1100.0%
App\Action\Investor\CreateSetupIntentAction::__invoke1100.0%
App\Action\Investor\DetachPaymentMethodAction::__construct1100.0%
App\Action\Investor\DetachPaymentMethodAction::__invoke1100.0%
App\Action\Investor\GetInvestorAction::__construct1100.0%
App\Action\Investor\GetInvestorByUserIdAction::__construct1100.0%
App\Action\Investor\ListPaymentMethodsAction::__construct1100.0%
App\Action\Investor\ListPaymentMethodsAction::__invoke1100.0%
App\Action\Investor\SetDefaultPaymentMethodAction::__construct1100.0%
App\Action\Investor\SetDefaultPaymentMethodAction::__invoke1100.0%
App\Action\Investor\UpdateInvestorAction::__construct1100.0%
App\Action\Investor\UpdateInvestorAction::__invoke1100.0%
App\Action\Investor\UpdateInvestorStatusAction::__construct1100.0%
App\Action\Investor\UpdateKycStatusAction::__construct1100.0%
App\Action\Loan\CheckEligibilityAction::__construct1100.0%
App\Action\Loan\CheckEligibilityAction::__invoke1100.0%
App\Action\Notification\GetMyNotificationPreferencesAction::__construct1100.0%
App\Action\Notification\UpdateMyNotificationPreferencesAction::__construct1100.0%
App\Action\Stripe\WebhookAction::__construct1100.0%
App\Action\Stripe\WebhookAction::__invoke1100.0%
App\Action\SuperAdmin\CreateTestUserAction::__construct1100.0%
App\Action\SuperAdmin\DeleteTestDataAction::__construct1100.0%
App\Action\SuperAdmin\GenerateBulkDataAction::__construct1100.0%
App\Action\SuperAdmin\GenerateTransactionsAction::__construct1100.0%
App\Action\SuperAdmin\GetAccountsForSuperAdminAction::__construct1100.0%
App\Action\SuperAdmin\GetSystemSettingsAction::__construct1100.0%
App\Action\SuperAdmin\GetSystemSettingsAction::__invoke1100.0%
App\Action\SuperAdmin\ListErrorLogsAction::__construct1100.0%
App\Action\SuperAdmin\ListErrorLogsAction::__invoke1100.0%
App\Action\SuperAdmin\ListUsersAction::__construct1100.0%
App\Action\SuperAdmin\UpdateUserRoleAction::__construct1100.0%