Docstrings, AdminDashboard button loading, new BannerStateEnums

This commit is contained in:
2024-11-06 18:22:03 +01:00
parent c2a337e051
commit fbae1b9f3a
5 changed files with 128 additions and 43 deletions

View File

@@ -7,6 +7,7 @@ import { BannerStateEnum } from "@/data/enums/bannerStateEnum";
export const useExerciseStore = defineStore("exerciseStore", {
state: () => ({
/** All exercise groups with sub-exercises */
exerciseGroups: ref<Array<ExerciseGroupApiModel>>([]),
/** Request to server sent, waiting for data response */
@@ -14,68 +15,83 @@ export const useExerciseStore = defineStore("exerciseStore", {
}),
actions: {
getAllExercises() {
/**
* Get all exercises and exercise groups from server
*/
async getAllExercises() {
this.fetchInProgress = true
fetchAllExerciseGroups()
await fetchAllExerciseGroups()
.then(result => {
this.exerciseGroups = result.data
this.fetchInProgress = false
})
},
solveExercise(exerciseGroupNr: number, exerciseNr: number) {
/**
* Mark an exercise as solved
*
* @param exerciseGroupNr Exercise group number (0-3)
* @param exerciseNr Exercise number (1-3)
*/
async solveExercise(exerciseGroupNr: number, exerciseNr: number) {
// Request all exercises from server
await this.getAllExercises()
const feedbackStore = useFeedbackStore()
this.fetchInProgress = true
updateExercise(exerciseGroupNr, exerciseNr, true)
.then(result => {
let bannerState = BannerStateEnum.ERROR
switch(exerciseGroupNr) {
case 0: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED01; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED02; break;
// Change only if the exercise is not solved
if(!this.exerciseGroups[exerciseGroupNr].exercises[exerciseNr - 1].solved) {
updateExercise(exerciseGroupNr, exerciseNr, true)
.then(result => {
let bannerState = BannerStateEnum.ERROR
switch(exerciseGroupNr) {
case 0: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED01; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED02; break;
}
break;
}
break;
}
case 1: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED11; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED12; break;
case 3: bannerState = BannerStateEnum.EXERCISESOLVED13; break;
}
case 1: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED11; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED12; break;
case 3: bannerState = BannerStateEnum.EXERCISESOLVED13; break;
break;
}
break;
}
case 2: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED21; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED22; break;
case 3: bannerState = BannerStateEnum.EXERCISESOLVED23; break;
}
case 2: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED21; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED22; break;
case 3: bannerState = BannerStateEnum.EXERCISESOLVED23; break;
break;
}
break;
}
case 3: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED31; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED32; break;
case 3: bannerState = BannerStateEnum.EXERCISESOLVED33; break;
}
case 3: {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED31; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED32; break;
case 3: bannerState = BannerStateEnum.EXERCISESOLVED33; break;
break;
}
break;
}
}
feedbackStore.changeBanner(bannerState)
this.getAllExercises()
})
feedbackStore.changeBanner(bannerState)
this.getAllExercises()
})
}
}
}
})