Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
BO\Zmscitizenapi\Exceptions\UnauthorizedException0%
BO\Zmscitizenapi\Middleware\MaintenanceMiddleware0%
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor0%
BO\Zmscitizenapi\Utils\ErrorHandler0%
BO\Zmscitizenapi\Services\Captcha\TokenValidationService9%
BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController41%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList42%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController50%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaController50%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController57%
BO\Zmscitizenapi\Models\Collections\OfficeList61%
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList61%
BO\Zmscitizenapi\Models\Collections\ServiceList61%
BO\Zmscitizenapi\Models\AuthenticatedUser75%
BO\Zmscitizenapi\Utils\DateTimeFormatHelper77%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService79%
BO\Zmscitizenapi\BaseController80%
BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware80%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware81%
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList83%
BO\Zmscitizenapi\Services\Core\ExceptionService83%
BO\Zmscitizenapi\Services\Captcha\CaptchaService87%
BO\Zmscitizenapi\Models\OfficeServiceRelation87%
BO\Zmscitizenapi\Utils\ErrorMessages87%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService88%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController88%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController88%
BO\Zmscitizenapi\Services\Availability\ServiceLocationValidationTrait88%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService89%
BO\Zmscitizenapi\Services\Core\ValidationService89%
BO\Zmscitizenapi\Services\Core\MapperService89%

Project Risks

Class CRAP
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor420
BO\Zmscitizenapi\Services\Core\MapperService245
BO\Zmscitizenapi\Services\Core\ZmsApiClientService216
BO\Zmscitizenapi\Services\Core\ValidationService154
BO\Zmscitizenapi\Utils\ErrorHandler110
BO\Zmscitizenapi\Services\Captcha\TokenValidationService43
BO\Zmscitizenapi\Services\Core\ExceptionService42
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService34
BO\Zmscitizenapi\Middleware\IpFilterMiddleware33
BO\Zmscitizenapi\Models\AuthenticatedUser27
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList24
BO\Zmscitizenapi\Services\Captcha\CaptchaService21
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService19
BO\Zmscitizenapi\BaseController13
BO\Zmscitizenapi\Models\Collections\OfficeList11
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList11
BO\Zmscitizenapi\Models\Collections\ServiceList11
BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController10
BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController8
BO\Zmscitizenapi\Controllers\Captcha\CaptchaController8
BO\Zmscitizenapi\Utils\ErrorMessages8
BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController6
BO\Zmscitizenapi\Middleware\MaintenanceMiddleware6
BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware5
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList5
BO\Zmscitizenapi\Models\OfficeServiceRelation5
BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController5
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController5
BO\Zmscitizenapi\Utils\DateTimeFormatHelper3
BO\Zmscitizenapi\Services\Availability\ServiceLocationValidationTrait3

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
getExceptionContext0%
readResponse0%
__construct0%
process0%
isLocked0%
getEmail0%
getGivenName0%
getFamilyName0%
toArray0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
toArray0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
getCaptchaToken0%
setIcsContent0%
getIcsContent0%
getProvider0%
getShortName0%
getCaptchaActivatedRequired0%
getInfoForAppointment0%
getInfoForAllAppointments0%
getHint0%
validateCaptchaToken0%
extractProcessContext0%
buildProcessContextFromArray0%
addIntFieldIfPresent0%
extractScopeId0%
getMergedMailTemplates0%
getProcessByIdAuthenticated0%
__invoke0%
getStatusCode0%
formatErrorPayload0%
getErrorMessage0%
logError0%
validateCaptcha21%
readResponse33%
getProcessById33%
readResponse45%
readResponse45%
getCalendarAvailability47%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
getIcsContent50%
getInternalDateFromTimestamp50%
readResponse53%
__construct57%
__construct57%
__construct57%
__construct57%
createRequests59%
initializeSource66%
resolveAllowDisabledServicesMix66%
resolveSharedBookingOfficeIds66%
process70%
saveProcessUpdate71%
updateClientData75%
preconfirmAppointment75%
confirmAppointment75%
cancelAppointment75%
sendPreconfirmationEmail75%
sendConfirmationEmail75%
sendCancellationEmail75%
getHighestStatusCode75%
process76%
createJsonResponse76%
getScopesByProviderId77%
isIpInRange78%
cancelProcess80%
confirmProcess80%
preconfirmProcess80%
validateClientData80%
getProcessesByExternalUserId80%
reserveTimeslot80%
getThinnedProcessById80%
extractActivationDuration81%
processToThinnedProcess81%
process83%
createChallenge83%
getSourceNames83%
handleException83%
validateServiceLocationCombination84%
processPreconfirm84%
verifySolution84%
extractReservationDuration85%
validateServerPostRequest85%
processConfirm86%
mapScopeForProvider86%
createScope86%
getServices86%
readResponse87%
readResponse87%
isCaptchaRequiredForAnyOffice87%
findMatchingProcess88%
validateServiceLocations88%
validateGetBookableFreeDays89%

Project Risks

Method CRAP
getMergedMailTemplates156
extractProcessContext72
processToThinnedProcess42
validateCaptchaToken42
handleException41
validateCaptcha30
extractScopeId30
validateGetBookableFreeDays23
buildProcessContextFromArray20
isIpInRange12
addIntFieldIfPresent12
getProcessByIdAuthenticated12
getErrorMessage12
verifySolution11
isCaptchaRequiredForAnyOffice11
validateServiceLocationCombination10
mapScopeForProvider10
readResponse8
createScope8
getServices8
findMatchingProcess8
createJsonResponse7
extractActivationDuration7
process7
getSourceNames7
processPreconfirm7
processConfirm7
readResponse6
readResponse6
getHighestStatusCode6
getCalendarAvailability6
validateClientData6
process6
__invoke6
getStatusCode6
formatErrorPayload6
getProcessById5
process5
saveProcessUpdate5
readResponse5
__construct5
__construct5
__construct5
__construct5
getProcessesByExternalUserId5
createChallenge5
createRequests5
extractReservationDuration5
process4
getScopesByProviderId4
getIcsContent4
validateServerPostRequest4
readResponse4
readResponse4
initializeSource3
resolveAllowDisabledServicesMix3
resolveSharedBookingOfficeIds3
cancelProcess3
confirmProcess3
preconfirmProcess3
getThinnedProcessById3
validateServiceLocations3
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
getInternalDateFromTimestamp2
updateClientData2
preconfirmAppointment2
confirmAppointment2
cancelAppointment2
sendPreconfirmationEmail2
sendConfirmationEmail2
sendCancellationEmail2
reserveTimeslot2