| 89 | **Најпрво при пристап до предизвикот се повикува помошна функција која повикува GET барање до backend и се враќаат податоците за денешниот предизвик** |
| 90 | [[Image(fetchTaskForToday.png)]] [[BR]] |
| 91 | [[Image(getTaskForDateService.png)]] [[BR]] |
| 92 | [[Image(getTaskByDateController.png)]] [[BR]] |
| 93 | [[Image(getTaskByDateController2.png)]] [[BR]] |
| 94 | **При избор на „Test case“ за корисникот најпрво се проверува дали претходно пристапил до предизвикот и ако да се повикуваат функциите за преземање на конкретниот „Test case“. Во спротива се презема „Test case“ од низата „Test cases“ за соодветниот предизвик и преку помошната функција „updateUserDailyTestCaseId“ се повикува PUT барање до backend и се ажурира соодветната колона за корисникот во датабазата **[[BR]] |
| 95 | [[Image(fetchTestCaseLogic1.png)]] [[BR]] |
| 96 | [[Image(fetchTestCaseLogic2.png)]] [[BR]] |
| 97 | **Помошни функции во „services/taskService“**[[BR]] |
| 98 | [[Image(getSpecificTestCaseService.png)]] [[BR]] |
| 99 | [[Image(getTestCaseForTaskService.png)]] [[BR]] |
| 100 | [[Image(updateUserService.png)]] [[BR]] |
| 101 | **Функциите во контролерот** |
| 102 | [[Image(getTestCaseByIDController.png)]] [[BR]] |
| 103 | [[Image(getTestCaseController.png)]] [[BR]] |
| 104 | **Корисникот притиснува „Submit“ и се извршува основа валидација на податоците. Потоа се повикува помошна функција која повикува POST барање до backend каде се врши евалуација на резултатот внесен од корисникот** |
| 105 | [[Image(handleSubmitSolution.png)]] [[BR]] |
| 106 | **Помошна функција во „services/taskService“**[[BR]] |
| 107 | [[Image(evaluateService.png)]] [[BR]] |
| 108 | **Овие функции се корситат при евалуација на резултатот внесен од корисникот. Најпрво се повикуваат функциите „getMinutesSinceSevenAM“ и „getTimeBonus“, со кои се пресметува времето поминато од поставувањето на предизвикот, односно од седум часот наутро. Потоа се повикува функцијата „getAttemptScore“ која служи за доделување поени во зависност од тоа колку обиди му биле потребни на корисникот да го реши предизвикот. За крај, се повикуваат функции за нормализација на резултатот внесен од корисникот и негова споредба со точниот резултат**[[BR]] |
| 109 | [[Image(helperEvalFunctions1.png)]] [[BR]] |
| 110 | [[Image(helperEvalFunctions2.png)]] [[BR]] |
| 111 | **Функциите во контролерот. Тука се ажурираат и соодветните полиња за корисникот и предизвикот во датабазата** |
| 112 | [[Image(evaluateController1.png)]] [[BR]] |
| 113 | [[Image(evaluateController2.png)]] [[BR]] |
| 114 | [[Image(evaluateController3.png)]] [[BR]] |
| 115 | |