Classes

Line coverage against cyclomatic complexity. Bubble size is the number of executable lines; hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 50 100 150 200 250 Line Coverage (%) Cyclomatic Complexity BO\Zmscitizenapi\Services\Core\MapperService — Coverage: 90,1% | Lines: 406 | Complexity: 196 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService — Coverage: 91,8% | Lines: 343 | Complexity: 124 BO\Zmscitizenapi\Services\Core\ZmsApiClientService — Coverage: 79,5% | Lines: 342 | Complexity: 121 BO\Zmscitizenapi\Services\Core\ValidationService — Coverage: 92,6% | Lines: 270 | Complexity: 185 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService — Coverage: 75,9% | Lines: 112 | Complexity: 38 BO\Zmscitizenapi\Services\Core\ExceptionService — Coverage: 83,7% | Lines: 104 | Complexity: 37 BO\Zmscitizenapi\Services\Captcha\CaptchaService — Coverage: 87,0% | Lines: 100 | Complexity: 21 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService — Coverage: 93,3% | Lines: 90 | Complexity: 55 BO\Zmscitizenapi\Application — Coverage: 98,8% | Lines: 86 | Complexity: 26 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware — Coverage: 90,9% | Lines: 77 | Complexity: 21 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService — Coverage: 94,4% | Lines: 72 | Complexity: 36 BO\Zmscitizenapi\Models\ThinnedScope — Coverage: 90,1% | Lines: 71 | Complexity: 26 BO\Zmscitizenapi\Middleware\IpFilterMiddleware — Coverage: 81,4% | Lines: 70 | Complexity: 28 BO\Zmscitizenapi\Services\Availability\AvailableCalendarService — Coverage: 98,1% | Lines: 53 | Complexity: 14 BO\Zmscitizenapi\Models\ThinnedProcess — Coverage: 92,0% | Lines: 50 | Complexity: 9 BO\Zmscitizenapi\Models\AuthenticatedUser — Coverage: 75,6% | Lines: 45 | Complexity: 21 BO\Zmscitizenapi\Models\Office — Coverage: 94,7% | Lines: 38 | Complexity: 5 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService — Coverage: 94,4% | Lines: 36 | Complexity: 19 BO\Zmscitizenapi\Utils\ErrorHandler — Coverage: 0,0% | Lines: 34 | Complexity: 10 BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService — Coverage: 90,9% | Lines: 33 | Complexity: 19 BO\Zmscitizenapi\BaseController — Coverage: 80,0% | Lines: 30 | Complexity: 12 BO\Zmscitizenapi\Services\Core\ProcessContextExtractor — Coverage: 0,0% | Lines: 30 | Complexity: 20 BO\Zmscitizenapi\Controllers\Office\SourceCacheWarmupController — Coverage: 81,5% | Lines: 27 | Complexity: 8 BO\Zmscitizenapi\Models\Service — Coverage: 90,9% | Lines: 22 | Complexity: 5 BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware — Coverage: 80,0% | Lines: 20 | Complexity: 5 BO\Zmscitizenapi\Models\ThinnedProvider — Coverage: 95,0% | Lines: 20 | Complexity: 5 BO\Zmscitizenapi\Models\AvailableCalendar — Coverage: 94,7% | Lines: 19 | Complexity: 4 BO\Zmscitizenapi\Models\ThinnedContact — Coverage: 100,0% | Lines: 19 | Complexity: 4 BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService — Coverage: 100,0% | Lines: 19 | Complexity: 11 BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController — Coverage: 41,2% | Lines: 17 | Complexity: 5 BO\Zmscitizenapi\Models\OfficeServiceRelation — Coverage: 87,5% | Lines: 16 | Complexity: 5 BO\Zmscitizenapi\Utils\ErrorMessages — Coverage: 87,5% | Lines: 16 | Complexity: 8 BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController — Coverage: 93,3% | Lines: 15 | Complexity: 5 BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController — Coverage: 57,1% | Lines: 14 | Complexity: 5 BO\Zmscitizenapi\Models\Collections\ThinnedScopeList — Coverage: 42,9% | Lines: 14 | Complexity: 9 BO\Zmscitizenapi\Controllers\Availability\AvailableCalendarController — Coverage: 92,3% | Lines: 13 | Complexity: 6 BO\Zmscitizenapi\Models\Combinable — Coverage: 92,3% | Lines: 13 | Complexity: 9 BO\Zmscitizenapi\Models\Collections\OfficeList — Coverage: 61,5% | Lines: 13 | Complexity: 8 BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList — Coverage: 61,5% | Lines: 13 | Complexity: 8 BO\Zmscitizenapi\Models\Collections\ServiceList — Coverage: 61,5% | Lines: 13 | Complexity: 8 BO\Zmscitizenapi\Controllers\Appointment\AppointmentCancelController — Coverage: 100,0% | Lines: 12 | Complexity: 7 BO\Zmscitizenapi\Controllers\Appointment\AppointmentReserveController — Coverage: 91,7% | Lines: 12 | Complexity: 7 BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController — Coverage: 50,0% | Lines: 12 | Complexity: 5 BO\Zmscitizenapi\Controllers\Captcha\CaptchaController — Coverage: 50,0% | Lines: 12 | Complexity: 5 BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList — Coverage: 83,3% | Lines: 12 | Complexity: 5 BO\Zmscitizenapi\Middleware\MaintenanceMiddleware — Coverage: 0,0% | Lines: 11 | Complexity: 2 BO\Zmscitizenapi\Services\Captcha\TokenValidationService — Coverage: 9,1% | Lines: 11 | Complexity: 7 BO\Zmscitizenapi\Controllers\Appointment\AppointmentConfirmController — Coverage: 100,0% | Lines: 9 | Complexity: 5 BO\Zmscitizenapi\Controllers\Appointment\AppointmentPreconfirmController — Coverage: 100,0% | Lines: 9 | Complexity: 5 BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController — Coverage: 88,9% | Lines: 9 | Complexity: 5 BO\Zmscitizenapi\Controllers\Appointment\MyAppointmentsController — Coverage: 100,0% | Lines: 9 | Complexity: 3 BO\Zmscitizenapi\Utils\DateTimeFormatHelper — Coverage: 77,8% | Lines: 9 | Complexity: 3 BO\Zmscitizenapi\Services\Core\AuthenticationService — Coverage: 100,0% | Lines: 7 | Complexity: 3 BO\Zmscitizenapi\Services\Appointment\MyAppointmentsService — Coverage: 100,0% | Lines: 6 | Complexity: 2 BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService — Coverage: 100,0% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Exceptions\InvalidAuthTokenException — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Exceptions\UnauthorizedException — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Utils\ClientIpHelper — Coverage: 100,0% | Lines: 1 | Complexity: 1

Sorted by descending CRAP index.

Class CRAP Coverage
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor4200,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService246.5479,5%
BO\Zmscitizenapi\Services\Core\MapperService232.7490,1%
BO\Zmscitizenapi\Services\Core\ValidationService198.9192,6%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService132.3691,8%
BO\Zmscitizenapi\Utils\ErrorHandler1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService58.2375,9%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService55.9093,3%
BO\Zmscitizenapi\Services\Captcha\TokenValidationService43.819,1%
BO\Zmscitizenapi\Services\Core\ExceptionService42.9883,7%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService36.2294,4%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware33.0281,4%
BO\Zmscitizenapi\Models\AuthenticatedUser27.4475,6%
BO\Zmscitizenapi\Models\ThinnedScope26.6590,1%
BO\Zmscitizenapi\Application2698,8%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList24.1142,9%
BO\Zmscitizenapi\Services\Captcha\CaptchaService21.9787,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware21.3390,9%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService19.2790,9%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService19.0694,4%
BO\Zmscitizenapi\Services\Availability\AvailableCalendarService1498,1%
BO\Zmscitizenapi\BaseController13.1580,0%
BO\Zmscitizenapi\Models\Collections\OfficeList11.6461,5%
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList11.6461,5%
BO\Zmscitizenapi\Models\Collections\ServiceList11.6461,5%
BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService11100,0%
BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController10.0941,2%
BO\Zmscitizenapi\Models\Combinable9.0492,3%
BO\Zmscitizenapi\Models\ThinnedProcess9.0492,0%
BO\Zmscitizenapi\Controllers\Office\SourceCacheWarmupController8.4181,5%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController8.1250,0%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaController8.1250,0%
BO\Zmscitizenapi\Utils\ErrorMessages8.1287,5%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentReserveController7.0391,7%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentCancelController7100,0%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController6.9757,1%
BO\Zmscitizenapi\Controllers\Availability\AvailableCalendarController6.0292,3%
BO\Zmscitizenapi\Middleware\MaintenanceMiddleware60,0%
BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware5.2080,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList5.1283,3%
BO\Zmscitizenapi\Models\OfficeServiceRelation5.0587,5%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController5.0388,9%
BO\Zmscitizenapi\Models\Service5.0290,9%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController5.0193,3%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentConfirmController5100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentPreconfirmController5100,0%
BO\Zmscitizenapi\Models\Office5.0094,7%
BO\Zmscitizenapi\Models\ThinnedProvider595,0%
BO\Zmscitizenapi\Models\AvailableCalendar4.0094,7%
BO\Zmscitizenapi\Models\ThinnedContact4100,0%
BO\Zmscitizenapi\Utils\DateTimeFormatHelper3.1077,8%
BO\Zmscitizenapi\Controllers\Appointment\MyAppointmentsController3100,0%
BO\Zmscitizenapi\Services\Core\AuthenticationService3100,0%
BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService3100,0%
BO\Zmscitizenapi\Exceptions\UnauthorizedException20,0%
BO\Zmscitizenapi\Services\Appointment\MyAppointmentsService2100,0%
BO\Zmscitizenapi\Exceptions\InvalidAuthTokenException1100,0%
BO\Zmscitizenapi\Utils\ClientIpHelper1100,0%

Methods

Line coverage against cyclomatic complexity. Bubble size is the number of executable lines; hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 20 40 60 Line Coverage (%) Cyclomatic Complexity BO\Zmscitizenapi\Services\Core\ExceptionService::handleException — Coverage: 83,5% | Lines: 103 | Complexity: 36 BO\Zmscitizenapi\Services\Core\MapperService::scopeToThinnedScope — Coverage: 97,0% | Lines: 66 | Complexity: 26 BO\Zmscitizenapi\Services\Core\MapperService::mapOfficesWithScope — Coverage: 91,8% | Lines: 61 | Complexity: 49 BO\Zmscitizenapi\Services\Captcha\CaptchaService::verifySolution — Coverage: 84,9% | Lines: 53 | Complexity: 11 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getOffices — Coverage: 96,2% | Lines: 53 | Complexity: 18 BO\Zmscitizenapi\Services\Core\MapperService::processToThinnedProcess — Coverage: 84,4% | Lines: 45 | Complexity: 29 BO\Zmscitizenapi\Services\Core\MapperService::createScope — Coverage: 86,7% | Lines: 45 | Complexity: 8 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getScopes — Coverage: 97,7% | Lines: 43 | Complexity: 14 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::processReservation — Coverage: 95,0% | Lines: 40 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getScopeById — Coverage: 94,9% | Lines: 39 | Complexity: 12 BO\Zmscitizenapi\Services\Core\MapperService::mapServicesWithCombinations — Coverage: 97,4% | Lines: 38 | Complexity: 15 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getCalendarAvailability — Coverage: 100,0% | Lines: 35 | Complexity: 10 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::validateClientData — Coverage: 88,2% | Lines: 34 | Complexity: 9 BO\Zmscitizenapi\Services\Core\MapperService::thinnedProcessToProcess — Coverage: 93,8% | Lines: 32 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::reserveTimeslot — Coverage: 96,8% | Lines: 31 | Complexity: 8 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::process — Coverage: 83,3% | Lines: 30 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ValidationService::validateGetBookableFreeDays — Coverage: 89,3% | Lines: 28 | Complexity: 23 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getFreeAppointments — Coverage: 92,9% | Lines: 28 | Complexity: 7 BO\Zmscitizenapi\Middleware\IpFilterMiddleware::process — Coverage: 70,4% | Lines: 27 | Complexity: 5 BO\Zmscitizenapi\Controllers\Office\SourceCacheWarmupController::readResponse — Coverage: 80,8% | Lines: 26 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getServicesByOfficeId — Coverage: 92,3% | Lines: 26 | Complexity: 13 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::fetchSourceDataFor — Coverage: 100,0% | Lines: 25 | Complexity: 9 BO\Zmscitizenapi\Models\ThinnedScope::toArray — Coverage: 100,0% | Lines: 24 | Complexity: 1 BO\Zmscitizenapi\Services\Captcha\CaptchaService::createChallenge — Coverage: 83,3% | Lines: 24 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::isCaptchaRequiredForAnyOffice — Coverage: 87,5% | Lines: 24 | Complexity: 11 BO\Zmscitizenapi\Middleware\IpFilterMiddleware::isIpInRange — Coverage: 78,3% | Lines: 23 | Complexity: 11 BO\Zmscitizenapi\Models\ThinnedScope::__construct — Coverage: 100,0% | Lines: 23 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::processConfirm — Coverage: 91,3% | Lines: 23 | Complexity: 10 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getMergedMailTemplates — Coverage: 0,0% | Lines: 23 | Complexity: 12 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getScopes — Coverage: 95,7% | Lines: 23 | Complexity: 8 BO\Zmscitizenapi\Models\ThinnedProcess::toArray — Coverage: 100,0% | Lines: 22 | Complexity: 1 BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::extractClientData — Coverage: 100,0% | Lines: 22 | Complexity: 9 BO\Zmscitizenapi\Services\Core\MapperService::createRequests — Coverage: 59,1% | Lines: 22 | Complexity: 4 BO\Zmscitizenapi\Models\ThinnedProcess::__construct — Coverage: 100,0% | Lines: 21 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::extractClientData — Coverage: 100,0% | Lines: 20 | Complexity: 21 BO\Zmscitizenapi\Services\Core\MapperService::contactToThinnedContact — Coverage: 100,0% | Lines: 19 | Complexity: 6 BO\Zmscitizenapi\Services\Core\ValidationService::validateServiceLocationCombination — Coverage: 84,2% | Lines: 19 | Complexity: 10 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getCalendarAvailability — Coverage: 47,4% | Lines: 19 | Complexity: 4 BO\Zmscitizenapi\Models\Office::toArray — Coverage: 100,0% | Lines: 18 | Complexity: 1 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::checkAndIncrementLimit — Coverage: 100,0% | Lines: 17 | Complexity: 4 BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware::process — Coverage: 76,5% | Lines: 17 | Complexity: 4 BO\Zmscitizenapi\Models\AuthenticatedUser::fromJwtPayload — Coverage: 94,1% | Lines: 17 | Complexity: 7 BO\Zmscitizenapi\Models\Office::__construct — Coverage: 100,0% | Lines: 17 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::processCancel — Coverage: 94,1% | Lines: 17 | Complexity: 6 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::findMatchingProcess — Coverage: 88,2% | Lines: 17 | Complexity: 8 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::reserveAppointment — Coverage: 88,2% | Lines: 17 | Complexity: 8 BO\Zmscitizenapi\Services\Core\ValidationService::validateUnchangedStoredContact — Coverage: 100,0% | Lines: 17 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getRequestRelationList — Coverage: 94,1% | Lines: 17 | Complexity: 5 BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::processPreconfirm — Coverage: 87,5% | Lines: 16 | Complexity: 7 BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::getAvailableCalendar — Coverage: 93,8% | Lines: 16 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::isConfirmedRebookingSource — Coverage: 100,0% | Lines: 16 | Complexity: 6 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::refreshSourceCaches — Coverage: 68,8% | Lines: 16 | Complexity: 6 BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController::readResponse — Coverage: 33,3% | Lines: 15 | Complexity: 4 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::extractClientData — Coverage: 100,0% | Lines: 15 | Complexity: 11 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::copySourceContactOntoReservedProcess — Coverage: 0,0% | Lines: 15 | Complexity: 3 BO\Zmscitizenapi\Services\Core\MapperService::mapScopeForProvider — Coverage: 86,7% | Lines: 15 | Complexity: 10 BO\Zmscitizenapi\Services\Core\ValidationService::rejectChangedStoredField — Coverage: 100,0% | Lines: 15 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getOffices — Coverage: 93,3% | Lines: 15 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getServices — Coverage: 93,3% | Lines: 15 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getProcessesByExternalUserId — Coverage: 80,0% | Lines: 15 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getServices — Coverage: 86,7% | Lines: 15 | Complexity: 8 BO\Zmscitizenapi\Application::initializeCaptcha — Coverage: 100,0% | Lines: 14 | Complexity: 2 BO\Zmscitizenapi\BaseController::__invoke — Coverage: 100,0% | Lines: 14 | Complexity: 3 BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController::readResponse — Coverage: 92,9% | Lines: 14 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ValidationService::validateCaptcha — Coverage: 21,4% | Lines: 14 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ValidationService::validateServiceArrays — Coverage: 100,0% | Lines: 14 | Complexity: 8 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getProcessByIdAuthenticated — Coverage: 0,0% | Lines: 14 | Complexity: 3 BO\Zmscitizenapi\BaseController::createJsonResponse — Coverage: 76,9% | Lines: 13 | Complexity: 7 BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController::readResponse — Coverage: 53,8% | Lines: 13 | Complexity: 4 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::getReservedProcess — Coverage: 92,3% | Lines: 13 | Complexity: 3 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::extractClientData — Coverage: 100,0% | Lines: 13 | Complexity: 10 BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::validateClientData — Coverage: 100,0% | Lines: 13 | Complexity: 1 BO\Zmscitizenapi\Services\Core\MapperService::providerToThinnedProvider — Coverage: 100,0% | Lines: 13 | Complexity: 10 BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::extractProcessContext — Coverage: 0,0% | Lines: 13 | Complexity: 8 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::forEachAvailableSource — Coverage: 100,0% | Lines: 13 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::rebuildServicesAndOfficesCache — Coverage: 100,0% | Lines: 13 | Complexity: 1 BO\Zmscitizenapi\Application::getLoggerConfig — Coverage: 100,0% | Lines: 12 | Complexity: 1 BO\Zmscitizenapi\Middleware\IpFilterMiddleware::parseIpList — Coverage: 100,0% | Lines: 12 | Complexity: 7 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::updateProcessWithClientData — Coverage: 100,0% | Lines: 12 | Complexity: 11 BO\Zmscitizenapi\Services\Core\MapperService::mapRelations — Coverage: 91,7% | Lines: 12 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getIcsContent — Coverage: 50,0% | Lines: 12 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getFreeTimeslots — Coverage: 100,0% | Lines: 12 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getSourceNames — Coverage: 83,3% | Lines: 12 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::warmOfficesAndServicesCache — Coverage: 100,0% | Lines: 12 | Complexity: 1 BO\Zmscitizenapi\Application::initializeLogger — Coverage: 100,0% | Lines: 11 | Complexity: 1 BO\Zmscitizenapi\Application::initializeMiddleware — Coverage: 100,0% | Lines: 11 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentCancelController::readResponse — Coverage: 100,0% | Lines: 11 | Complexity: 6 BO\Zmscitizenapi\Controllers\Availability\AvailableCalendarController::readResponse — Coverage: 90,9% | Lines: 11 | Complexity: 5 BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController::readResponse — Coverage: 45,5% | Lines: 11 | Complexity: 4 BO\Zmscitizenapi\Controllers\Captcha\CaptchaController::readResponse — Coverage: 45,5% | Lines: 11 | Complexity: 4 BO\Zmscitizenapi\Middleware\MaintenanceMiddleware::process — Coverage: 0,0% | Lines: 11 | Complexity: 2 BO\Zmscitizenapi\Services\Core\MapperService::extractActivationDuration — Coverage: 81,8% | Lines: 11 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ValidationService::validatePostAppointmentReserve — Coverage: 100,0% | Lines: 11 | Complexity: 5 BO\Zmscitizenapi\Controllers\Appointment\AppointmentReserveController::readResponse — Coverage: 90,0% | Lines: 10 | Complexity: 6 BO\Zmscitizenapi\Models\Service::toArray — Coverage: 100,0% | Lines: 10 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::processUpdate — Coverage: 100,0% | Lines: 10 | Complexity: 2 BO\Zmscitizenapi\Services\Captcha\TokenValidationService::validateCaptchaToken — Coverage: 0,0% | Lines: 10 | Complexity: 6 BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::buildProcessContextFromArray — Coverage: 0,0% | Lines: 10 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentConfirm — Coverage: 100,0% | Lines: 10 | Complexity: 8 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getProcessById — Coverage: 100,0% | Lines: 10 | Complexity: 3 BO\Zmscitizenapi\Utils\ErrorHandler::formatErrorPayload — Coverage: 0,0% | Lines: 10 | Complexity: 2 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::__construct — Coverage: 100,0% | Lines: 9 | Complexity: 1 BO\Zmscitizenapi\Models\AvailableCalendar::toArray — Coverage: 100,0% | Lines: 9 | Complexity: 1 BO\Zmscitizenapi\Models\Service::__construct — Coverage: 100,0% | Lines: 9 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedContact::toArray — Coverage: 100,0% | Lines: 9 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProvider::toArray — Coverage: 100,0% | Lines: 9 | Complexity: 1 BO\Zmscitizenapi\Services\Captcha\CaptchaService::__construct — Coverage: 100,0% | Lines: 9 | Complexity: 1 BO\Zmscitizenapi\Services\Core\MapperService::generateIcsContent — Coverage: 100,0% | Lines: 9 | Complexity: 6 BO\Zmscitizenapi\Services\Core\ValidationService::isSameOrCompletedFamilyName — Coverage: 88,9% | Lines: 9 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getScopesByProviderId — Coverage: 77,8% | Lines: 9 | Complexity: 4 BO\Zmscitizenapi\Utils\ErrorHandler::__invoke — Coverage: 0,0% | Lines: 9 | Complexity: 2 BO\Zmscitizenapi\Application::getRateLimit — Coverage: 100,0% | Lines: 8 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentConfirmController::readResponse — Coverage: 100,0% | Lines: 8 | Complexity: 4 BO\Zmscitizenapi\Controllers\Appointment\AppointmentPreconfirmController::readResponse — Coverage: 100,0% | Lines: 8 | Complexity: 4 BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController::readResponse — Coverage: 87,5% | Lines: 8 | Complexity: 4 BO\Zmscitizenapi\Controllers\Appointment\MyAppointmentsController::readResponse — Coverage: 100,0% | Lines: 8 | Complexity: 2 BO\Zmscitizenapi\Models\AvailableCalendar::__construct — Coverage: 100,0% | Lines: 8 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedContact::__construct — Coverage: 100,0% | Lines: 8 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProvider::__construct — Coverage: 100,0% | Lines: 8 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::getAppointmentById — Coverage: 100,0% | Lines: 8 | Complexity: 2 BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::extractClientData — Coverage: 100,0% | Lines: 8 | Complexity: 6 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::extractClientData — Coverage: 100,0% | Lines: 8 | Complexity: 6 BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::extractClientData — Coverage: 100,0% | Lines: 8 | Complexity: 6 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::loadSourceProcessForRebooking — Coverage: 25,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateCustomTextField — Coverage: 100,0% | Lines: 8 | Complexity: 7 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::submitClientData — Coverage: 100,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::preconfirmProcess — Coverage: 100,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::confirmProcess — Coverage: 100,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::cancelAppointment — Coverage: 100,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::sendConfirmationEmail — Coverage: 100,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::sendPreconfirmationEmail — Coverage: 100,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::sendCancellationEmail — Coverage: 100,0% | Lines: 8 | Complexity: 3 BO\Zmscitizenapi\Utils\ErrorMessages::get — Coverage: 100,0% | Lines: 8 | Complexity: 2 BO\Zmscitizenapi\Utils\ErrorMessages::getHighestStatusCode — Coverage: 75,0% | Lines: 8 | Complexity: 6 BO\Zmscitizenapi\Application::initialize — Coverage: 100,0% | Lines: 7 | Complexity: 1 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::createRateLimitResponse — Coverage: 100,0% | Lines: 7 | Complexity: 1 BO\Zmscitizenapi\Models\OfficeServiceRelation::toArray — Coverage: 100,0% | Lines: 7 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\OfficeList::__construct — Coverage: 57,1% | Lines: 7 | Complexity: 4 BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::__construct — Coverage: 57,1% | Lines: 7 | Complexity: 4 BO\Zmscitizenapi\Models\Collections\ServiceList::__construct — Coverage: 57,1% | Lines: 7 | Complexity: 4 BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::__construct — Coverage: 57,1% | Lines: 7 | Complexity: 4 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::loadSourceProcessForRebooking — Coverage: 100,0% | Lines: 7 | Complexity: 2 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::saveProcessUpdate — Coverage: 71,4% | Lines: 7 | Complexity: 5 BO\Zmscitizenapi\Services\Core\AuthenticationService::getAuthenticatedUser — Coverage: 100,0% | Lines: 7 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateServerPostRequest — Coverage: 85,7% | Lines: 7 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentUpdateFields — Coverage: 100,0% | Lines: 7 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ValidationService::isValidAuthKey — Coverage: 100,0% | Lines: 7 | Complexity: 4 BO\Zmscitizenapi\Utils\ErrorHandler::logError — Coverage: 0,0% | Lines: 7 | Complexity: 1 BO\Zmscitizenapi\Middleware\IpFilterMiddleware::isIpInList — Coverage: 100,0% | Lines: 6 | Complexity: 4 BO\Zmscitizenapi\Models\AuthenticatedUser::toArray — Coverage: 0,0% | Lines: 6 | Complexity: 1 BO\Zmscitizenapi\Models\OfficeServiceRelation::__construct — Coverage: 100,0% | Lines: 6 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\MyAppointmentsService::getAppointmentsForUser — Coverage: 100,0% | Lines: 6 | Complexity: 2 BO\Zmscitizenapi\Services\Captcha\CaptchaService::getCaptchaDetails — Coverage: 100,0% | Lines: 6 | Complexity: 1 BO\Zmscitizenapi\Services\Captcha\CaptchaService::generateToken — Coverage: 100,0% | Lines: 6 | Complexity: 1 BO\Zmscitizenapi\Services\Core\MapperService::extractReservationDuration — Coverage: 83,3% | Lines: 6 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ValidationService::validateGetProcessById — Coverage: 100,0% | Lines: 6 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateEmailField — Coverage: 100,0% | Lines: 6 | Complexity: 6 BO\Zmscitizenapi\Services\Core\ValidationService::isValidServiceCounts — Coverage: 100,0% | Lines: 6 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentPreconfirm — Coverage: 83,3% | Lines: 6 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::setMappedCache — Coverage: 100,0% | Lines: 6 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getProcessById — Coverage: 33,3% | Lines: 6 | Complexity: 3 BO\Zmscitizenapi\Application::getRequestLimits — Coverage: 100,0% | Lines: 5 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::base64UrlDecode — Coverage: 100,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Models\Combinable::toArray — Coverage: 100,0% | Lines: 5 | Complexity: 2 BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::toArray — Coverage: 100,0% | Lines: 5 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::cancelProcess — Coverage: 80,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::confirmProcess — Coverage: 80,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::preconfirmProcess — Coverage: 80,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Services\Core\MapperService::contactCoordinate — Coverage: 100,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::extractScopeId — Coverage: 0,0% | Lines: 5 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ValidationService::validateServerGetRequest — Coverage: 100,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateTelephoneField — Coverage: 100,0% | Lines: 5 | Complexity: 9 BO\Zmscitizenapi\Services\Core\ZmsApiClientService::isSourceNotFoundException — Coverage: 100,0% | Lines: 5 | Complexity: 5 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::reserveTimeslot — Coverage: 80,0% | Lines: 5 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getThinnedProcessById — Coverage: 80,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Utils\DateTimeFormatHelper::formatDateArray — Coverage: 100,0% | Lines: 5 | Complexity: 1 BO\Zmscitizenapi\Utils\ErrorHandler::getErrorMessage — Coverage: 0,0% | Lines: 5 | Complexity: 3 BO\Zmscitizenapi\Application::initializePlaceholderEmail — Coverage: 100,0% | Lines: 4 | Complexity: 1 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::getCurrentRequestCount — Coverage: 100,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::getResetTime — Coverage: 100,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Models\AuthenticatedUser::__construct — Coverage: 100,0% | Lines: 4 | Complexity: 1 BO\Zmscitizenapi\Models\Combinable::__construct — Coverage: 100,0% | Lines: 4 | Complexity: 3 BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::__construct — Coverage: 100,0% | Lines: 4 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::validateClientData — Coverage: 100,0% | Lines: 4 | Complexity: 3 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::writeFamilyNameIfAllowed — Coverage: 100,0% | Lines: 4 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ValidationService::rejectChangedStoredFamilyName — Coverage: 100,0% | Lines: 4 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ValidationService::isDateRangeValid — Coverage: 100,0% | Lines: 4 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ValidationService::isValidServiceCount — Coverage: 100,0% | Lines: 4 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getServicesAndOffices — Coverage: 75,0% | Lines: 4 | Complexity: 4 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::updateClientData — Coverage: 75,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::preconfirmAppointment — Coverage: 75,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::confirmAppointment — Coverage: 75,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::cancelAppointment — Coverage: 75,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::sendPreconfirmationEmail — Coverage: 75,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::sendConfirmationEmail — Coverage: 75,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::sendCancellationEmail — Coverage: 75,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Utils\DateTimeFormatHelper::getInternalDateFromTimestamp — Coverage: 50,0% | Lines: 4 | Complexity: 2 BO\Zmscitizenapi\Application::initializeSource — Coverage: 66,7% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Application::getPlaceholderEmail — Coverage: 100,0% | Lines: 3 | Complexity: 2 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::acquireLock — Coverage: 100,0% | Lines: 3 | Complexity: 2 BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware::__construct — Coverage: 100,0% | Lines: 3 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\OfficeList::toArray — Coverage: 100,0% | Lines: 3 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::toArray — Coverage: 100,0% | Lines: 3 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\ServiceList::toArray — Coverage: 100,0% | Lines: 3 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::toArray — Coverage: 0,0% | Lines: 3 | Complexity: 1 BO\Zmscitizenapi\Services\Core\MapperService::resolveAllowDisabledServicesMix — Coverage: 66,7% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Services\Core\MapperService::resolveSharedBookingOfficeIds — Coverage: 66,7% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateGetProcessNotFound — Coverage: 100,0% | Lines: 3 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::validateScopesNotFound — Coverage: 100,0% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateServicesNotFound — Coverage: 100,0% | Lines: 3 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::validateOfficesNotFound — Coverage: 100,0% | Lines: 3 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::isValidEmail — Coverage: 100,0% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::isPlaceholderEmail — Coverage: 100,0% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::isMissingClientContactData — Coverage: 100,0% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentReservedStatus — Coverage: 100,0% | Lines: 3 | Complexity: 3 BO\Zmscitizenapi\Utils\ErrorHandler::getStatusCode — Coverage: 0,0% | Lines: 3 | Complexity: 2 BO\Zmscitizenapi\Application::getenvInt — Coverage: 100,0% | Lines: 2 | Complexity: 3 BO\Zmscitizenapi\Application::getenvString — Coverage: 100,0% | Lines: 2 | Complexity: 3 BO\Zmscitizenapi\BaseController::getExceptionContext — Coverage: 0,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentReserveController::__construct — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Controllers\Availability\AvailableCalendarController::__construct — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController::__construct — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Middleware\IpFilterMiddleware::__construct — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::isLocked — Coverage: 0,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::setExternalUserId — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::setEmail — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::setGivenName — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::setFamilyName — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Models\Combinable::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\Office::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\OfficeServiceRelation::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\Service::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\ThinnedProcess::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\ThinnedProvider::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\ThinnedScope::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\Collections\OfficeList::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\Collections\ServiceList::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::canBeCancelled — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::sendCancellationEmail — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::isRebookingConfirm — Coverage: 100,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::sendConfirmationEmail — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::sendPreconfirmationEmail — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::__construct — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::isRebookingUpdate — Coverage: 100,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::__construct — Coverage: 100,0% | Lines: 2 | Complexity: 1 BO\Zmscitizenapi\Services\Captcha\CaptchaService::ensureValid — Coverage: 50,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::addIntFieldIfPresent — Coverage: 0,0% | Lines: 2 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::validateFamilyNameField — Coverage: 100,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::isValidDate — Coverage: 100,0% | Lines: 2 | Complexity: 2 BO\Zmscitizenapi\Application::initializeMaintenanceMode — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Application::reinitializeMiddlewareConfig — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Application::getIpBlacklist — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Application::getAccessUnpublishedOnDomain — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\BaseController::readResponse — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentCancelController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentConfirmController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentPreconfirmController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Appointment\MyAppointmentsController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Captcha\CaptchaController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Controllers\Office\SourceCacheWarmupController::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Exceptions\InvalidAuthTokenException::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Exceptions\UnauthorizedException::__construct — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::releaseLock — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::getExternalUserId — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::getEmail — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::getGivenName — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::getFamilyName — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\AuthenticatedUser::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\AvailableCalendar::ensureValid — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\AvailableCalendar::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Combinable::getCombinations — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Combinable::jsonSerialize — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Office::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\OfficeServiceRelation::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Service::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedContact::ensureValid — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedContact::jsonSerialize — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProcess::setCaptchaToken — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProcess::getCaptchaToken — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProcess::setIcsContent — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProcess::getIcsContent — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProcess::jsonSerialize — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedProvider::jsonSerialize — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getProvider — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getShortName — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getEmailFrom — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getEmailRequired — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getTelephoneActivated — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getTelephoneRequired — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfieldActivated — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfieldRequired — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfieldLabel — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfield2Activated — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfield2Required — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfield2Label — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getCaptchaActivatedRequired — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getInfoForAppointment — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getInfoForAllAppointments — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getSlotsPerAppointment — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getAppointmentsPerMail — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getWhitelistedMails — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getReservationDuration — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getActivationDuration — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::getHint — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\ThinnedScope::jsonSerialize — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\OfficeList::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\ServiceList::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::jsonSerialize — Coverage: 0,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::getScopes — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::validateClientData — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::getAppointment — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::validateClientData — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::getProcess — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::validateClientData — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::getReservedProcess — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::getReservedProcess — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Captcha\TokenValidationService::__construct — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ExceptionService::getError — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Core\MapperService::mapCombinable — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::clearOfficeServicesCacheForTesting — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ValidationService::getError — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ValidationService::isFilledContactValue — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ValidationService::isFilledEmail — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::normalizedCustomText — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::validatenoAppointmentForThisScope — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Core\ValidationService::isValidNumericArray — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::isValidOfficeIds — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::isValidProcessId — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::isValidServiceIds — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::isValidTimestamp — Coverage: 100,0% | Lines: 1 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::isValidTelephone — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ValidationService::isValidFamilyName — Coverage: 100,0% | Lines: 1 | Complexity: 3 BO\Zmscitizenapi\Services\Core\ValidationService::isValidOfficeId — Coverage: 100,0% | Lines: 1 | Complexity: 2 BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getAppointmentsByExternalUserId — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService::getServicesAndOfficesList — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService::getServicesAndOffices — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService::warmOfficesAndServicesCache — Coverage: 100,0% | Lines: 1 | Complexity: 1 BO\Zmscitizenapi\Utils\ClientIpHelper::getClientIp — Coverage: 100,0% | Lines: 1 | Complexity: 1

Sorted by descending CRAP index.

Method CRAP Coverage
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getMergedMailTemplates1560,0%
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::extractProcessContext720,0%
BO\Zmscitizenapi\Services\Core\MapperService::mapOfficesWithScope50.3291,8%
BO\Zmscitizenapi\Services\Captcha\TokenValidationService::validateCaptchaToken420,0%
BO\Zmscitizenapi\Services\Core\ExceptionService::handleException41.8383,5%
BO\Zmscitizenapi\Services\Core\MapperService::processToThinnedProcess32.1784,4%
BO\Zmscitizenapi\Services\Core\ValidationService::validateCaptcha30.7721,4%
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::extractScopeId300,0%
BO\Zmscitizenapi\Services\Core\MapperService::scopeToThinnedScope2697,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateGetBookableFreeDays23.6589,3%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::extractClientData21100,0%
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::buildProcessContextFromArray200,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getOffices1896,2%
BO\Zmscitizenapi\Services\Core\MapperService::mapServicesWithCombinations1597,4%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getScopes1497,7%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getServicesByOfficeId13.0892,3%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware::isIpInRange12.2478,3%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getScopeById12.0294,9%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::copySourceContactOntoReservedProcess120,0%
BO\Zmscitizenapi\Services\Core\ProcessContextExtractor::addIntFieldIfPresent120,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getProcessByIdAuthenticated120,0%
BO\Zmscitizenapi\Utils\ErrorHandler::getErrorMessage120,0%
BO\Zmscitizenapi\Services\Captcha\CaptchaService::verifySolution11.4284,9%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::isCaptchaRequiredForAnyOffice11.2487,5%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::extractClientData11100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::updateProcessWithClientData11100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateServiceLocationCombination10.3984,2%
BO\Zmscitizenapi\Services\Core\MapperService::mapScopeForProvider10.2486,7%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::processConfirm10.0791,3%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::extractClientData10100,0%
BO\Zmscitizenapi\Services\Core\MapperService::providerToThinnedProvider10100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getCalendarAvailability10100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::validateClientData9.1388,2%
BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::extractClientData9100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateTelephoneField9100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::fetchSourceDataFor9100,0%
BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController::readResponse8.7433,3%
BO\Zmscitizenapi\Services\Core\MapperService::createScope8.1586,7%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getServices8.1586,7%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::findMatchingProcess8.1088,2%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::reserveAppointment8.1088,2%
BO\Zmscitizenapi\Services\Core\ValidationService::validateServiceArrays8100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentConfirm8100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getScopes895,7%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::reserveTimeslot896,8%
BO\Zmscitizenapi\BaseController::createJsonResponse7.6076,9%
BO\Zmscitizenapi\Controllers\Office\SourceCacheWarmupController::readResponse7.3580,8%
BO\Zmscitizenapi\Services\Core\MapperService::extractActivationDuration7.2981,8%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::process7.2383,3%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getSourceNames7.2383,3%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::processPreconfirm7.1087,5%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::refreshSourceCaches7.1068,8%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getFreeAppointments7.0292,9%
BO\Zmscitizenapi\Models\AuthenticatedUser::fromJwtPayload7.0194,1%
BO\Zmscitizenapi\Services\Core\MapperService::thinnedProcessToProcess7.0193,8%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware::parseIpList7100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::rejectChangedStoredField7100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateCustomTextField7100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::loadSourceProcessForRebooking6.8025,0%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController::readResponse6.6045,5%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaController::readResponse6.6045,5%
BO\Zmscitizenapi\Utils\ErrorMessages::getHighestStatusCode6.5675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getCalendarAvailability6.3347,4%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentReserveController::readResponse6.0490,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::processCancel6.0194,1%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentCancelController::readResponse6100,0%
BO\Zmscitizenapi\Middleware\MaintenanceMiddleware::process60,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::extractClientData6100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::extractClientData6100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::extractClientData6100,0%
BO\Zmscitizenapi\Services\Core\MapperService::contactToThinnedContact6100,0%
BO\Zmscitizenapi\Services\Core\MapperService::generateIcsContent6100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateEmailField6100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isConfirmedRebookingSource6100,0%
BO\Zmscitizenapi\Utils\ErrorHandler::__invoke60,0%
BO\Zmscitizenapi\Utils\ErrorHandler::getStatusCode60,0%
BO\Zmscitizenapi\Utils\ErrorHandler::formatErrorPayload60,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getProcessById5.6733,3%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware::process5.6570,4%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::saveProcessUpdate5.5871,4%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController::readResponse5.5753,8%
BO\Zmscitizenapi\Models\Collections\OfficeList::__construct5.2657,1%
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::__construct5.2657,1%
BO\Zmscitizenapi\Models\Collections\ServiceList::__construct5.2657,1%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::__construct5.2657,1%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getProcessesByExternalUserId5.2080,0%
BO\Zmscitizenapi\Services\Captcha\CaptchaService::createChallenge5.1283,3%
BO\Zmscitizenapi\Services\Core\MapperService::createRequests5.1059,1%
BO\Zmscitizenapi\Services\Core\ValidationService::isSameOrCompletedFamilyName5.0388,9%
BO\Zmscitizenapi\Controllers\Availability\AvailableCalendarController::readResponse5.0290,9%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getOffices5.0193,3%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getServices5.0193,3%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getRequestRelationList5.0194,1%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::processReservation595,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validatePostAppointmentReserve5100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidServiceCounts5100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::forEachAvailableSource5100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::isSourceNotFoundException5100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getServicesAndOffices4.2575,0%
BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware::process4.2176,5%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getScopesByProviderId4.1877,8%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getIcsContent4.1250,0%
BO\Zmscitizenapi\Services\Core\MapperService::extractReservationDuration4.0783,3%
BO\Zmscitizenapi\Services\Core\ValidationService::validateServerPostRequest4.0585,7%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController::readResponse4.0387,5%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController::readResponse4.0192,9%
BO\Zmscitizenapi\Services\Core\MapperService::mapRelations4.0191,7%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentConfirmController::readResponse4100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentPreconfirmController::readResponse4100,0%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware::isIpInList4100,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::checkAndIncrementLimit4100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::writeFamilyNameIfAllowed4100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::rejectChangedStoredFamilyName4100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidAuthKey4100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidServiceCount4100,0%
BO\Zmscitizenapi\Application::initializeSource3.3366,7%
BO\Zmscitizenapi\Services\Core\MapperService::resolveAllowDisabledServicesMix3.3366,7%
BO\Zmscitizenapi\Services\Core\MapperService::resolveSharedBookingOfficeIds3.3366,7%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::cancelProcess3.0780,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::confirmProcess3.0780,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::preconfirmProcess3.0780,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getThinnedProcessById3.0780,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentPreconfirm3.0483,3%
BO\Zmscitizenapi\Application::getenvInt3100,0%
BO\Zmscitizenapi\Application::getenvString3100,0%
BO\Zmscitizenapi\BaseController::__invoke3100,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::base64UrlDecode3100,0%
BO\Zmscitizenapi\Models\Combinable::__construct3100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::validateClientData3100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::getReservedProcess3.0092,3%
BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::getAvailableCalendar3.0093,8%
BO\Zmscitizenapi\Services\Core\AuthenticationService::getAuthenticatedUser3100,0%
BO\Zmscitizenapi\Services\Core\MapperService::contactCoordinate3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateServerGetRequest3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateGetProcessById3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateScopesNotFound3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidTimestamp3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidEmail3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidFamilyName3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isPlaceholderEmail3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isMissingClientContactData3100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentReservedStatus3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getFreeTimeslots3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::submitClientData3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::preconfirmProcess3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::confirmProcess3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::cancelAppointment3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::sendConfirmationEmail3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::sendPreconfirmationEmail3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::sendCancellationEmail3100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiClientService::getProcessById3100,0%
BO\Zmscitizenapi\Models\Combinable::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\Office::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\OfficeServiceRelation::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\Service::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\ThinnedProcess::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\ThinnedProvider::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\ThinnedScope::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\Collections\OfficeList::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\Collections\ServiceList::ensureValid2.5050,0%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::ensureValid2.5050,0%
BO\Zmscitizenapi\Services\Captcha\CaptchaService::ensureValid2.5050,0%
BO\Zmscitizenapi\Utils\DateTimeFormatHelper::getInternalDateFromTimestamp2.5050,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::updateClientData2.0675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::preconfirmAppointment2.0675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::confirmAppointment2.0675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::cancelAppointment2.0675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::sendPreconfirmationEmail2.0675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::sendConfirmationEmail2.0675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::sendCancellationEmail2.0675,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::reserveTimeslot2.0380,0%
BO\Zmscitizenapi\Application::getPlaceholderEmail2100,0%
BO\Zmscitizenapi\Application::initializeCaptcha2100,0%
BO\Zmscitizenapi\Application::getIpBlacklist2100,0%
BO\Zmscitizenapi\Application::getAccessUnpublishedOnDomain2100,0%
BO\Zmscitizenapi\BaseController::getExceptionContext20,0%
BO\Zmscitizenapi\BaseController::readResponse20,0%
BO\Zmscitizenapi\Controllers\Appointment\MyAppointmentsController::readResponse2100,0%
BO\Zmscitizenapi\Exceptions\UnauthorizedException::__construct20,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::getCurrentRequestCount2100,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::getResetTime2100,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::acquireLock2100,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::isLocked20,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::getEmail20,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::getGivenName20,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::getFamilyName20,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::toArray20,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::jsonSerialize20,0%
BO\Zmscitizenapi\Models\AvailableCalendar::jsonSerialize20,0%
BO\Zmscitizenapi\Models\Combinable::toArray2100,0%
BO\Zmscitizenapi\Models\Office::jsonSerialize20,0%
BO\Zmscitizenapi\Models\OfficeServiceRelation::jsonSerialize20,0%
BO\Zmscitizenapi\Models\Service::jsonSerialize20,0%
BO\Zmscitizenapi\Models\ThinnedProcess::getCaptchaToken20,0%
BO\Zmscitizenapi\Models\ThinnedProcess::setIcsContent20,0%
BO\Zmscitizenapi\Models\ThinnedProcess::getIcsContent20,0%
BO\Zmscitizenapi\Models\ThinnedScope::getProvider20,0%
BO\Zmscitizenapi\Models\ThinnedScope::getShortName20,0%
BO\Zmscitizenapi\Models\ThinnedScope::getCaptchaActivatedRequired20,0%
BO\Zmscitizenapi\Models\ThinnedScope::getInfoForAppointment20,0%
BO\Zmscitizenapi\Models\ThinnedScope::getInfoForAllAppointments20,0%
BO\Zmscitizenapi\Models\ThinnedScope::getHint20,0%
BO\Zmscitizenapi\Models\Collections\OfficeList::jsonSerialize20,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::jsonSerialize20,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::jsonSerialize20,0%
BO\Zmscitizenapi\Models\Collections\ServiceList::jsonSerialize20,0%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::toArray20,0%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::jsonSerialize20,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::getAppointmentById2100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::isRebookingConfirm2100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::loadSourceProcessForRebooking2100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::processUpdate2100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::isRebookingUpdate2100,0%
BO\Zmscitizenapi\Services\Appointment\MyAppointmentsService::getAppointmentsForUser2100,0%
BO\Zmscitizenapi\Services\Core\MapperService::mapCombinable2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isFilledEmail2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::normalizedCustomText2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateFamilyNameField2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateGetProcessNotFound2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateServicesNotFound2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateOfficesNotFound2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidDate2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidNumericArray2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidOfficeIds2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidProcessId2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidServiceIds2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidTelephone2100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isValidOfficeId2100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::setMappedCache2100,0%
BO\Zmscitizenapi\Utils\ErrorHandler::logError20,0%
BO\Zmscitizenapi\Utils\ErrorMessages::get2100,0%
BO\Zmscitizenapi\Application::initialize1100,0%
BO\Zmscitizenapi\Application::initializeMaintenanceMode1100,0%
BO\Zmscitizenapi\Application::initializePlaceholderEmail1100,0%
BO\Zmscitizenapi\Application::initializeLogger1100,0%
BO\Zmscitizenapi\Application::initializeMiddleware1100,0%
BO\Zmscitizenapi\Application::reinitializeMiddlewareConfig1100,0%
BO\Zmscitizenapi\Application::getLoggerConfig1100,0%
BO\Zmscitizenapi\Application::getRateLimit1100,0%
BO\Zmscitizenapi\Application::getRequestLimits1100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentByIdController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentCancelController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentConfirmController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentPreconfirmController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentReserveController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Appointment\AppointmentUpdateController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Appointment\MyAppointmentsController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Availability\AvailableCalendarController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaChallengeController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Captcha\CaptchaVerifyController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Office\OfficesServicesRelationsController::__construct1100,0%
BO\Zmscitizenapi\Controllers\Office\SourceCacheWarmupController::__construct1100,0%
BO\Zmscitizenapi\Exceptions\InvalidAuthTokenException::__construct1100,0%
BO\Zmscitizenapi\Middleware\IpFilterMiddleware::__construct1100,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::__construct1100,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::createRateLimitResponse1100,0%
BO\Zmscitizenapi\Middleware\RateLimitingMiddleware::releaseLock1100,0%
BO\Zmscitizenapi\Middleware\RequestSizeLimitMiddleware::__construct1100,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::__construct1100,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::getExternalUserId1100,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::setExternalUserId1100,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::setEmail1100,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::setGivenName1100,0%
BO\Zmscitizenapi\Models\AuthenticatedUser::setFamilyName1100,0%
BO\Zmscitizenapi\Models\AvailableCalendar::__construct1100,0%
BO\Zmscitizenapi\Models\AvailableCalendar::ensureValid1100,0%
BO\Zmscitizenapi\Models\AvailableCalendar::toArray1100,0%
BO\Zmscitizenapi\Models\Combinable::getCombinations1100,0%
BO\Zmscitizenapi\Models\Combinable::jsonSerialize1100,0%
BO\Zmscitizenapi\Models\Office::__construct1100,0%
BO\Zmscitizenapi\Models\Office::toArray1100,0%
BO\Zmscitizenapi\Models\OfficeServiceRelation::__construct1100,0%
BO\Zmscitizenapi\Models\OfficeServiceRelation::toArray1100,0%
BO\Zmscitizenapi\Models\Service::__construct1100,0%
BO\Zmscitizenapi\Models\Service::toArray1100,0%
BO\Zmscitizenapi\Models\ThinnedContact::__construct1100,0%
BO\Zmscitizenapi\Models\ThinnedContact::ensureValid1100,0%
BO\Zmscitizenapi\Models\ThinnedContact::toArray1100,0%
BO\Zmscitizenapi\Models\ThinnedContact::jsonSerialize1100,0%
BO\Zmscitizenapi\Models\ThinnedProcess::__construct1100,0%
BO\Zmscitizenapi\Models\ThinnedProcess::toArray1100,0%
BO\Zmscitizenapi\Models\ThinnedProcess::setCaptchaToken1100,0%
BO\Zmscitizenapi\Models\ThinnedProcess::jsonSerialize1100,0%
BO\Zmscitizenapi\Models\ThinnedProvider::__construct1100,0%
BO\Zmscitizenapi\Models\ThinnedProvider::toArray1100,0%
BO\Zmscitizenapi\Models\ThinnedProvider::jsonSerialize1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::__construct1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getEmailFrom1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getEmailRequired1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getTelephoneActivated1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getTelephoneRequired1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfieldActivated1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfieldRequired1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfieldLabel1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfield2Activated1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfield2Required1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getCustomTextfield2Label1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getSlotsPerAppointment1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getAppointmentsPerMail1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getWhitelistedMails1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getReservationDuration1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::getActivationDuration1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::toArray1100,0%
BO\Zmscitizenapi\Models\ThinnedScope::jsonSerialize1100,0%
BO\Zmscitizenapi\Models\Collections\OfficeList::toArray1100,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::__construct1100,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceAndRelationList::toArray1100,0%
BO\Zmscitizenapi\Models\Collections\OfficeServiceRelationList::toArray1100,0%
BO\Zmscitizenapi\Models\Collections\ServiceList::toArray1100,0%
BO\Zmscitizenapi\Models\Collections\ThinnedScopeList::getScopes1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::__construct1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::validateClientData1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentByIdService::getAppointment1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::validateClientData1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::getProcess1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::canBeCancelled1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentCancelService::sendCancellationEmail1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::__construct1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentConfirmService::sendConfirmationEmail1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::validateClientData1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::getReservedProcess1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentPreconfirmService::sendPreconfirmationEmail1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentReserveService::__construct1100,0%
BO\Zmscitizenapi\Services\Appointment\AppointmentUpdateService::getReservedProcess1100,0%
BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::__construct1100,0%
BO\Zmscitizenapi\Services\Availability\AvailableCalendarService::validateClientData1100,0%
BO\Zmscitizenapi\Services\Captcha\CaptchaService::__construct1100,0%
BO\Zmscitizenapi\Services\Captcha\CaptchaService::getCaptchaDetails1100,0%
BO\Zmscitizenapi\Services\Captcha\CaptchaService::generateToken1100,0%
BO\Zmscitizenapi\Services\Captcha\TokenValidationService::__construct1100,0%
BO\Zmscitizenapi\Services\Core\ExceptionService::getError1100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::clearOfficeServicesCacheForTesting1100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::getError1100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateAppointmentUpdateFields1100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isFilledContactValue1100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validateUnchangedStoredContact1100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::validatenoAppointmentForThisScope1100,0%
BO\Zmscitizenapi\Services\Core\ValidationService::isDateRangeValid1100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::warmOfficesAndServicesCache1100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::rebuildServicesAndOfficesCache1100,0%
BO\Zmscitizenapi\Services\Core\ZmsApiFacadeService::getAppointmentsByExternalUserId1100,0%
BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService::getServicesAndOfficesList1100,0%
BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService::getServicesAndOffices1100,0%
BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService::warmOfficesAndServicesCache1100,0%
BO\Zmscitizenapi\Utils\ClientIpHelper::getClientIp1100,0%
BO\Zmscitizenapi\Utils\DateTimeFormatHelper::formatDateArray1100,0%