46 lines
826 B
TypeScript
46 lines
826 B
TypeScript
import {defineStore} from 'pinia';
|
|
|
|
export interface Bundle {
|
|
id: number;
|
|
label: string;
|
|
presentation: string;
|
|
lastQuizzDate: string;
|
|
numberOfQuizzes: number;
|
|
}
|
|
|
|
export interface QuestionCreation {
|
|
label: string;
|
|
description: string;
|
|
axeId: number;
|
|
index: number;
|
|
}
|
|
|
|
export interface BundleCreationRequest {
|
|
label: string;
|
|
presentation: string;
|
|
questions: QuestionCreation[];
|
|
}
|
|
|
|
export const useBundleStore = defineStore('bundle', {
|
|
state: () => ({
|
|
selectedBundle: ref<Bundle>()
|
|
}),
|
|
actions: {
|
|
|
|
findAll(): Bundle[] {
|
|
return useApi("bundles");
|
|
},
|
|
|
|
setCurrentBundle(bundle: Bundle) {
|
|
this.selectedBundle = bundle;
|
|
},
|
|
|
|
create(request: BundleCreationRequest) {
|
|
return useApi("bundles", {
|
|
method: "POST",
|
|
body: request
|
|
});
|
|
}
|
|
}
|
|
});
|