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\Services\Appointment\AppointmentReserveService73%
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\Controllers\Office\SourceCacheWarmupController81%
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\Controllers\Appointment\AppointmentByIdController88%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController88%
BO\Zmscitizenapi\Services\Availability\ServiceLocationValidationTrait88%

Project Risks

Class CRAP
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor420
BO\Zmscitizenapi\Services\Core\ZmsApiClientService246
BO\Zmscitizenapi\Utils\ErrorHandler110
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService64
BO\Zmscitizenapi\Services\Captcha\TokenValidationService43
BO\Zmscitizenapi\Services\Core\ExceptionService42
BO\Zmscitizenapi\Middleware\IpFilterMiddleware33
BO\Zmscitizenapi\Models\AuthenticatedUser27
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList24
BO\Zmscitizenapi\Services\Captcha\CaptchaService21
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\Office\SourceCacheWarmupController8
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%
copySourceContactOntoReservedProcess0%
validateCaptchaToken0%
extractProcessContext0%
buildProcessContextFromArray0%
addIntFieldIfPresent0%
extractScopeId0%
getMergedMailTemplates0%
getProcessByIdAuthenticated0%
__invoke0%
getStatusCode0%
formatErrorPayload0%
getErrorMessage0%
logError0%
validateCaptcha21%
loadSourceProcessForRebooking25%
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%
refreshSourceCaches68%
process70%
saveProcessUpdate71%
getServicesAndOffices75%
updateClientData75%
preconfirmAppointment75%
confirmAppointment75%
cancelAppointment75%
sendPreconfirmationEmail75%
sendConfirmationEmail75%
sendCancellationEmail75%
getHighestStatusCode75%
process76%
createJsonResponse76%
getScopesByProviderId77%
isIpInRange78%
cancelProcess80%
confirmProcess80%
preconfirmProcess80%
getProcessesByExternalUserId80%
reserveTimeslot80%
getThinnedProcessById80%
readResponse80%
extractClientData81%
extractActivationDuration81%
process83%
createChallenge83%
extractReservationDuration83%
validateAppointmentPreconfirm83%
getSourceNames83%
handleException83%
validateServiceLocationCombination84%
processToThinnedProcess84%
verifySolution84%
validateServerPostRequest85%
mapScopeForProvider86%
createScope86%
getServices86%
readResponse87%
readResponse87%
processPreconfirm87%
isCaptchaRequiredForAnyOffice87%
findMatchingProcess88%
reserveAppointment88%
validateClientData88%
isSameOrCompletedFamilyName88%
validateServiceLocations88%
validateGetBookableFreeDays89%

Project Risks

Method CRAP
getMergedMailTemplates156
extractProcessContext72
validateCaptchaToken42
handleException41
processToThinnedProcess32
validateCaptcha30
extractScopeId30
validateGetBookableFreeDays23
buildProcessContextFromArray20
isIpInRange12
copySourceContactOntoReservedProcess12
addIntFieldIfPresent12
getProcessByIdAuthenticated12
getErrorMessage12
verifySolution11
isCaptchaRequiredForAnyOffice11
extractClientData10
validateServiceLocationCombination10
mapScopeForProvider10
validateClientData9
readResponse8
createScope8
getServices8
processPreconfirm8
findMatchingProcess8
reserveAppointment8
createJsonResponse7
readResponse7
extractActivationDuration7
process7
getSourceNames7
refreshSourceCaches7
loadSourceProcessForRebooking6
readResponse6
readResponse6
getHighestStatusCode6
getCalendarAvailability6
process6
__invoke6
getStatusCode6
formatErrorPayload6
getProcessById5
process5
saveProcessUpdate5
readResponse5
__construct5
__construct5
__construct5
__construct5
getProcessesByExternalUserId5
createChallenge5
createRequests5
isSameOrCompletedFamilyName5
getServicesAndOffices4
process4
getScopesByProviderId4
getIcsContent4
extractReservationDuration4
validateServerPostRequest4
readResponse4
readResponse4
initializeSource3
resolveAllowDisabledServicesMix3
resolveSharedBookingOfficeIds3
cancelProcess3
confirmProcess3
preconfirmProcess3
getThinnedProcessById3
validateAppointmentPreconfirm3
validateServiceLocations3
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
getInternalDateFromTimestamp2
updateClientData2
preconfirmAppointment2
confirmAppointment2
cancelAppointment2
sendPreconfirmationEmail2
sendConfirmationEmail2
sendCancellationEmail2
reserveTimeslot2