tarekdx3's picture
Dev C Sprint 1
9c2358c
Raw
History Blame Contribute Delete
2.96 kB
import { HttpException, HttpStatus } from '@nestjs/common';
export class CourseNotFoundException extends HttpException {
constructor(id: number) {
super(`Course with ID ${id} not found`, HttpStatus.NOT_FOUND);
}
}
export class CourseCodeAlreadyExistsException extends HttpException {
constructor(code: string, departmentId: number) {
super(
`Course code '${code}' already exists in department ${departmentId}`,
HttpStatus.CONFLICT,
);
}
}
export class CannotDeleteCourseWithActiveSectionsException extends HttpException {
constructor(courseId: number) {
super(
`Cannot delete course ${courseId}. Active sections exist`,
HttpStatus.BAD_REQUEST,
);
}
}
export class CircularPrerequisiteDetectedException extends HttpException {
constructor(courseId: number, prerequisiteId: number) {
super(
`Circular dependency detected: Course ${courseId} cannot have ${prerequisiteId} as prerequisite`,
HttpStatus.BAD_REQUEST,
);
}
}
export class PrerequisiteNotFoundException extends HttpException {
constructor(prereqId: number) {
super(`Prerequisite with ID ${prereqId} not found`, HttpStatus.NOT_FOUND);
}
}
export class PrerequisiteAlreadyExistsException extends HttpException {
constructor(courseId: number, prerequisiteCourseId: number) {
super(
`Course ${prerequisiteCourseId} is already a prerequisite of course ${courseId}`,
HttpStatus.CONFLICT,
);
}
}
export class SectionNotFoundException extends HttpException {
constructor(id: number) {
super(`Section with ID ${id} not found`, HttpStatus.NOT_FOUND);
}
}
export class SectionFullException extends HttpException {
constructor(sectionId: number) {
super(
`Section ${sectionId} is full and cannot accept more enrollments`,
HttpStatus.BAD_REQUEST,
);
}
}
export class ScheduleNotFoundException extends HttpException {
constructor(id: number) {
super(`Schedule with ID ${id} not found`, HttpStatus.NOT_FOUND);
}
}
export class ScheduleConflictException extends HttpException {
constructor(message: string) {
super(`Schedule conflict: ${message}`, HttpStatus.BAD_REQUEST);
}
}
export class InvalidTimeRangeException extends HttpException {
constructor() {
super(
'Invalid time range: end time must be after start time',
HttpStatus.BAD_REQUEST,
);
}
}
export class DepartmentNotFoundException extends HttpException {
constructor(deptId: number) {
super(`Department with ID ${deptId} not found`, HttpStatus.NOT_FOUND);
}
}
export class SemesterNotFoundException extends HttpException {
constructor(semesterId: number) {
super(`Semester with ID ${semesterId} not found`, HttpStatus.NOT_FOUND);
}
}
export class UnauthorizedCourseActionException extends HttpException {
constructor(action: string) {
super(
`You are not authorized to ${action} this course`,
HttpStatus.FORBIDDEN,
);
}
}