boussole-pluss/frontend/repositories/quizRepository.ts

41 lines
1.2 KiB
TypeScript
Raw Normal View History

import {AxiosResponse} from "axios";
import {$axios} from "~/utils/api";
2022-10-07 14:15:53 +00:00
import {RestResponse} from "~/repositories/models/rest-response.model";
import {Quiz, Response, ResponseWithQuestion, Score} from "~/repositories/models/quiz.model";
export default {
findMine() {
return $axios.get<RestResponse<Quiz>>("/quizzes/search/me", {
params: {
sort: "createdDate,desc"
}
})
.then((response: AxiosResponse<RestResponse<Quiz>>) => {
response.data._embedded.quizzes.map(quiz => {
quiz.id = Number(quiz._links.self.href.replace($axios.defaults.baseURL + "/quizzes/", ""));
return quiz;
});
return response;
});
2022-10-07 14:15:53 +00:00
},
findScores(quizId: number) {
return $axios.get<RestResponse<Score[]>>("/quizzes/" + quizId + "/scores", {});
},
findById(quizId: number) {
return $axios.get<RestResponse<Quiz>>("/quizzes/" + quizId, {});
},
findResponses(quizId: number) {
return $axios.get<RestResponse<ResponseWithQuestion>>("/quizzes/" + quizId + "/responses", {});
},
save(responses: Response[]) {
return $axios.post<RestResponse<Quiz>>("/quizzes/batch/", {
responses
}, {});
}
}