feat: implement micro-learning collections and completion tracking hook
This commit is contained in:
@@ -1,19 +1,16 @@
|
||||
import { pb } from '../lib/pb';
|
||||
import { useApp } from '../store/AppContext';
|
||||
|
||||
export function useMicroLearningCompletions() {
|
||||
const { state } = useApp();
|
||||
|
||||
const recordCompletion = async ({ microLearningId, topicId, type, sessionWeek }) => {
|
||||
try {
|
||||
const user = pb.authStore.model;
|
||||
const user = state.currentUser;
|
||||
if (!user) throw new Error("No authenticated user");
|
||||
|
||||
const teamMemberRec = await pb.collection('team_members').getFirstListItem(`user_id = "${user.id}"`);
|
||||
|
||||
if (!teamMemberRec) {
|
||||
throw new Error("Team member record not found for user.");
|
||||
}
|
||||
|
||||
const record = await pb.collection('micro_learning_completions').create({
|
||||
team_member_id: teamMemberRec.id,
|
||||
team_member_id: user.id,
|
||||
micro_learning_id: microLearningId,
|
||||
topic_id: topicId,
|
||||
type: type,
|
||||
@@ -28,11 +25,11 @@ export function useMicroLearningCompletions() {
|
||||
|
||||
const getSessionCompletions = async (sessionWeek) => {
|
||||
try {
|
||||
const teamMemberRec = await pb.collection('team_members').getFirstListItem(`user_id = "${pb.authStore.model.id}"`);
|
||||
if (!teamMemberRec) return [];
|
||||
const user = state.currentUser;
|
||||
if (!user) return [];
|
||||
|
||||
const records = await pb.collection('micro_learning_completions').getFullList({
|
||||
filter: `team_member_id = "${teamMemberRec.id}" && session_week = ${sessionWeek}`
|
||||
filter: `team_member_id = "${user.id}" && session_week = ${sessionWeek}`
|
||||
});
|
||||
return records;
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user