Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
BO\Zmscitizenapi\Controllers\Availability\AvailableAppointmentsListByOfficeController0%
BO\Zmscitizenapi\Helper\ErrorHandler0%
BO\Zmscitizenapi\Middleware\CsrfMiddleware0%
BO\Zmscitizenapi\Middleware\MaintenanceMiddleware0%
BO\Zmscitizenapi\Middleware\RequestLoggingMiddleware0%
BO\Zmscitizenapi\Models\AvailableAppointmentsByOffice0%
BO\Zmscitizenapi\Models\Captcha\AltchaCaptcha0%
BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController41%
BO\Zmscitizenapi\Middleware\RequestSanitizerMiddleware57%
BO\Zmscitizenapi\Models\Collections\OfficeList61%
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList61%
BO\Zmscitizenapi\Models\Collections\ServiceList61%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList64%
BO\Zmscitizenapi\Helper\DateTimeFormatHelper66%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService73%
BO\Zmscitizenapi\Controllers\Scope\ScopesListController75%
BO\Zmscitizenapi\Controllers\Security\CaptchaController75%
BO\Zmscitizenapi\Models\AvailableAppointments75%
BO\Zmscitizenapi\Models\AvailableDays75%
BO\Zmscitizenapi\Services\Availability\AvailableAppointmentsListService76%
BO\Zmscitizenapi\Controllers\Office\OfficesListController77%
BO\Zmscitizenapi\Controllers\Service\ServicesListController77%
BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware80%
BO\Zmscitizenapi\Services\Core\LoggerService81%
BO\Zmscitizenapi\BaseController82%
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList83%
BO\Zmscitizenapi\Models\OfficeServiceRelation83%
BO\Zmscitizenapi\Models\Service85%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController87%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController87%
BO\Zmscitizenapi\Controllers\Availability\AvailableAppointmentsListController87%
BO\Zmscitizenapi\Controllers\Availability\AvailableDaysListController87%
BO\Zmscitizenapi\Controllers\Scope\ScopeByIdController87%
BO\Zmscitizenapi\Models\Combinable87%
BO\Zmscitizenapi\Models\ThinnedScope87%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware88%
BO\Zmscitizenapi\Controllers\Office\OfficeListByServiceController88%
BO\Zmscitizenapi\Controllers\Service\ServiceListByOfficeController88%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService89%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService89%

Project Risks

Class CRAP
BO\Zmscitizenapi\Middleware\CsrfMiddleware272
BO\Zmscitizenapi\Helper\ErrorHandler110
BO\Zmscitizenapi\Models\Captcha\AltchaCaptcha72
BO\Zmscitizenapi\Middleware\RequestSanitizerMiddleware57
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService51
BO\Zmscitizenapi\Services\Core\LoggerService44
BO\Zmscitizenapi\Middleware\IpFilterMiddleware30
BO\Zmscitizenapi\Controllers\Availability\AvailableAppointmentsListByOfficeController30
BO\Zmscitizenapi\Models\AvailableAppointmentsByOffice30
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService19
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService19
BO\Zmscitizenapi\Models\ThinnedScope16
BO\Zmscitizenapi\BaseController12
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList12
BO\Zmscitizenapi\Services\Availability\AvailableAppointmentsListService12
BO\Zmscitizenapi\Middleware\RequestLoggingMiddleware12
BO\Zmscitizenapi\Models\Collections\OfficeList11
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList11
BO\Zmscitizenapi\Models\Collections\ServiceList11
BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController10
BO\Zmscitizenapi\Helper\DateTimeFormatHelper7
BO\Zmscitizenapi\Models\Combinable7
BO\Zmscitizenapi\Middleware\MaintenanceMiddleware6
BO\Zmscitizenapi\Controllers\Scope\ScopesListController5
BO\Zmscitizenapi\Controllers\Security\CaptchaController5
BO\Zmscitizenapi\Models\AvailableAppointments5
BO\Zmscitizenapi\Models\AvailableDays5
BO\Zmscitizenapi\Controllers\Office\OfficesListController5
BO\Zmscitizenapi\Controllers\Service\ServicesListController5
BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware5
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList5
BO\Zmscitizenapi\Models\OfficeServiceRelation5
BO\Zmscitizenapi\Models\Service5
BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController5
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController5
BO\Zmscitizenapi\Controllers\Availability\AvailableAppointmentsListController5
BO\Zmscitizenapi\Controllers\Availability\AvailableDaysListController5
BO\Zmscitizenapi\Controllers\Scope\ScopeByIdController5
BO\Zmscitizenapi\Controllers\Office\OfficeListByServiceController5
BO\Zmscitizenapi\Controllers\Service\ServiceListByOfficeController5

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
getCsrfConfig0%
getExceptionContext0%
readResponse0%
__construct0%
readResponse0%
__invoke0%
getStatusCode0%
formatErrorPayload0%
getErrorMessage0%
logError0%
__construct0%
process0%
validateToken0%
ensureTokenExists0%
generateNewToken0%
getStoredToken0%
getToken0%
process0%
isLocked0%
__construct0%
process0%
sanitizeObject0%
sanitizeObjectWithDepth0%
jsonSerialize0%
__construct0%
ensureValid0%
toArray0%
jsonSerialize0%
jsonSerialize0%
__construct0%
ensureValid0%
getCaptchaDetails0%
verifyCaptcha0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
jsonSerialize0%
getProvider0%
getShortName0%
getCustomTextfieldRequired0%
getDisplayInfo0%
getAvailableAppointmentsListByOffice0%
getLanguageContext0%
verifyCaptcha27%
readResponse33%
validateCacheDirectory50%
getInternalDateFromISO50%
getInternalDateFromTimestamp50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
ensureValid50%
__construct57%
__construct57%
__construct57%
__construct57%
sanitizeString62%
sanitizeRequest63%
logWarning66%
logInfo66%
validateGetProcessFreeSlots66%
sanitizeDataWithDepth70%
readResponse71%
readResponse71%
readResponse71%
readResponse71%
logRequest74%
getHighestStatusCode75%
updateClientData75%
preconfirmAppointment75%
confirmAppointment75%
cancelAppointment75%
sendPreconfirmationEmail75%
sendConfirmationEmail75%
sendCancellationEmail75%
createJsonResponse76%
checkRateLimit77%
process77%
getScopesByProviderId77%
isIpInRange78%
cancelProcess80%
confirmProcess80%
preconfirmProcess80%
saveProcessUpdate80%
processToThinnedProcess80%
reserveTimeslot80%
process83%
validateServiceLocationCombination83%
processConfirm84%
processPreconfirm84%
readResponse85%
readResponse85%
readResponse85%
readResponse85%
readResponse85%
readResponse85%
readResponse85%
validateServerPostRequest85%
getOffices85%
getScopes85%
getServices85%
getRequestRelationList85%
processReservation86%
scopeToThinnedScope86%
findMatchingProcess88%
validateGetBookableFreeDays88%
process89%
getOfficeListByServiceId89%

Project Risks

Method CRAP
sanitizeObjectWithDepth42
processToThinnedProcess37
process30
readResponse20
validateToken20
verifyCaptcha20
verifyCaptcha19
logRequest17
validateGetBookableFreeDays14
getOfficeListByServiceId14
scopeToThinnedScope13
isIpInRange12
getErrorMessage12
checkRateLimit11
readResponse8
findMatchingProcess8
createJsonResponse7
process7
processConfirm7
processPreconfirm7
getHighestStatusCode6
validateServiceLocationCombination6
process6
validateCacheDirectory6
__invoke6
getStatusCode6
formatErrorPayload6
__construct6
ensureTokenExists6
process6
process6
ensureValid6
ensureValid6
getAvailableAppointmentsListByOffice6
sanitizeDataWithDepth5
__construct5
__construct5
__construct5
__construct5
processReservation5
readResponse4
readResponse4
readResponse4
readResponse4
process4
getScopesByProviderId4
getInternalDateFromISO4
readResponse4
readResponse4
readResponse4
readResponse4
readResponse4
readResponse4
readResponse4
validateServerPostRequest4
sanitizeString3
sanitizeRequest3
validateGetProcessFreeSlots3
cancelProcess3
confirmProcess3
preconfirmProcess3
saveProcessUpdate3
getOffices3
getScopes3
getServices3
getRequestRelationList3
getInternalDateFromTimestamp2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
ensureValid2
logWarning2
logInfo2
updateClientData2
preconfirmAppointment2
confirmAppointment2
cancelAppointment2
sendPreconfirmationEmail2
sendConfirmationEmail2
sendCancellationEmail2
reserveTimeslot2