Files
classroomio/src/lib/utils/services/submissions/index.ts
T

71 lines
1.4 KiB
TypeScript
Raw Normal View History

import { supabase } from '$lib/utils/functions/supabase';
2021-08-18 19:47:02 +03:00
export function fetchSubmissionStatus() {
return supabase.from('submissionstatus').select(`*`);
}
export function fetchSubmissions(course_id) {
return supabase
.from('submission')
.select(
`
id,
created_at,
2021-08-18 19:47:02 +03:00
answers:question_answer(*),
exercise:exercise_id(
id, title, due_by,
2021-08-18 19:47:02 +03:00
lesson:lesson_id(id, title),
questions:question(
*,
options:option(*),
question_type:question_type_id(id, label)
)
),
status_id,
course:course_id(*),
groupmember:submitted_by(
profile(*)
)
`
)
.match({
course_id
2021-08-18 19:47:02 +03:00
});
}
2021-09-04 22:27:00 +03:00
export async function fetchSubmission({ courseId, exerciseId, submittedBy }) {
return supabase
.from('submission')
.select(
`
id,
answers:question_answer(*),
status_id
`
)
.match({
submitted_by: submittedBy,
exercise_id: exerciseId,
course_id: courseId
2021-09-04 22:27:00 +03:00
});
}
export async function updateSubmission(
{ id, status_id, total }: { id?: number; status_id?: number; total?: number },
otherArgs?: any
) {
2021-09-04 22:27:00 +03:00
const toUpdate = {
status_id
2021-09-04 22:27:00 +03:00
};
if (typeof total === 'number') {
toUpdate.total = total;
}
2021-09-11 19:27:11 +03:00
return supabase.from('submission').update(toUpdate, otherArgs).match({ id });
2021-09-04 22:27:00 +03:00
}
export async function updateQuestionAnswer(update, match) {
return supabase.from('question_answer').update(update).match(match);
}