From 4ed15d50a44408e4e72de61d22f63b553e37dde0 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Thu, 5 Oct 2023 10:29:51 -0500 Subject: [PATCH] Fix router guard to load course with session context --- assets/vue/services/api.js | 2 +- assets/vue/store/cidReq.js | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/assets/vue/services/api.js b/assets/vue/services/api.js index 77db88ce6b..62454a3cb8 100644 --- a/assets/vue/services/api.js +++ b/assets/vue/services/api.js @@ -13,7 +13,7 @@ export default function makeService(endpoint) { const searchParams = new URLSearchParams(combinedParams); - return fetch(`${id}?${searchParams.toString()}`); + return fetch(id, { params: Object.fromEntries(searchParams) }); }, findAll(params) { console.log('api.js findAll'); diff --git a/assets/vue/store/cidReq.js b/assets/vue/store/cidReq.js index a02c95ab97..66e1f6d105 100644 --- a/assets/vue/store/cidReq.js +++ b/assets/vue/store/cidReq.js @@ -49,12 +49,12 @@ export const useCidReqStore = defineStore("cidReq", () => { session.value = null } - const setCourseByIri = async (iri) => { + const setCourseByIri = async (iri, sid = 0) => { if (course.value && iri === course.value["@id"]) { return } - course.value = await courseService.find(iri).then((response) => response.json()) + course.value = await courseService.find(iri, { sid }).then((response) => response.json()) } const setSessionByIri = async (iri) => { @@ -65,12 +65,14 @@ export const useCidReqStore = defineStore("cidReq", () => { session.value = await sessionService.find(iri).then((response) => response.json()) } - const setCourseAndSessionByIri = async (courseIri, sessionIri = undefined) => { + const setCourseAndSessionByIri = async (courseIri, sId = 0) => { if (!courseIri) { return } - await setCourseByIri(courseIri) + await setCourseByIri(courseIri, sId) + + let sessionIri = sId ? `/api/sessions/${sId}` : undefined if (!sessionIri) { return @@ -80,10 +82,9 @@ export const useCidReqStore = defineStore("cidReq", () => { } const setCourseAndSessionById = async (cid, sid = undefined) => { - let courseIri = cid ? "/api/courses/" + cid : undefined - let sessionIri = sid ? "/api/sessions/" + sid : undefined + let courseIri = cid ? `/api/courses/${cid}` : undefined - await setCourseAndSessionByIri(courseIri, sessionIri) + await setCourseAndSessionByIri(courseIri, sid) } return {