Commit 8f38e878 authored by wycers's avatar wycers
Browse files

current class authentication

parent 55ebce26
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
/*
  Warnings:

  - A unique constraint covering the columns `[semesterId,courseId]` on the table `Class` will be added. If there are existing duplicate values, this will fail.

*/
-- CreateIndex
CREATE UNIQUE INDEX `Class_semesterId_courseId_key` ON `Class`(`semesterId`, `courseId`);
+2 −0
Original line number Diff line number Diff line
@@ -90,6 +90,8 @@ model Class {

  users       ClassesOnUsers[]
  assignments Assignment[]

  @@unique([semesterId, courseId])
}

model ClassesOnUsers {
+14 −11
Original line number Diff line number Diff line
@@ -18,12 +18,11 @@
	let className: string | undefined | null = undefined;
	export { className as class };


	type Class = {
		id: number;
		name: string;
		semester: string;
	}
	};
	export let classes: Class[];

	const groupedClasses = _.groupBy(classes, (c) => c.semester);
@@ -31,7 +30,14 @@
	let open = false;
	let showClassDialog = false;

	let selectedClass: Class = classes?.[0]
	export let selectedClass: Class | null;
	if (_.isNil(selectedClass)) {
		selectedClass = {
			id: -1,
			name: "Select your class..",
			semester: ""
		}
	}

	function closeAndRefocusTrigger(triggerId: string) {
		open = false;
@@ -51,14 +57,14 @@
				aria-label="Select a class"
				class={cn('w-[200px] justify-between', className)}
			>
				<Avatar.Root class="mr-2 h-5 w-5">
				<!-- <Avatar.Root class="mr-2 h-5 w-5">
					<Avatar.Image
						src="https://avatar.vercel.sh/${selectedClass.id}.png"
						alt={selectedClass.name}
						class="grayscale"
					/>
					<Avatar.Fallback>SC</Avatar.Fallback>
				</Avatar.Root>
				</Avatar.Root> -->
				{selectedClass.name}
				<CaretSort class="ml-auto h-4 w-4 shrink-0 opacity-50" />
			</Button>
@@ -79,20 +85,17 @@
									value={c.name}
									class="text-sm"
								>
									<Avatar.Root class="mr-2 h-5 w-5">
									<!-- <Avatar.Root class="mr-2 h-5 w-5">
										<Avatar.Image
											src="https://avatar.vercel.sh/${c.id}.png"
											alt={c.name}
											class="grayscale"
										/>
										<Avatar.Fallback>SC</Avatar.Fallback>
									</Avatar.Root>
									</Avatar.Root> -->
									{c.name}
									<Check
										class={cn(
											'ml-auto h-4 w-4',
											selectedClass.id !== c.id && 'text-transparent'
										)}
										class={cn('ml-auto h-4 w-4', selectedClass.id !== c.id && 'text-transparent')}
									/>
								</Command.Item>
							{/each}
+14 −1
Original line number Diff line number Diff line
import type { Course, Semester } from '@prisma/client';
import { db } from '.';

export async function getUserClasses(userId: number) {
@@ -10,13 +11,25 @@ export async function getUserClasses(userId: number) {
		}
	});

	const classes = classesOnUsers.map(c => c.class)
	const classes = classesOnUsers.map((c) => c.class);

	return {
		classes
	};
}

export async function getClassByCourseSemester(course: Course, semester: Semester) {
	const c = await db.class.findUnique({
		where: {
			semesterId_courseId: {
				semesterId: semester.id,
				courseId: course.id
			}
		}
	});
	return c;
}

// export async function getClass(userId: number, classId: number) {
// 	const userClass = await db.classesOnUsers.findFirst({
// 		where: {
+7 −0
Original line number Diff line number Diff line
import _ from 'lodash';
import { db } from '.';

export const getCourseByCode = async (code: string) => {
	const course = await db.course.findUnique({ where: { code: _.toLower(code) } });
	return course;
};
Loading