elearning/Backend/src/services/courses.service.ts

39 lines
1.2 KiB
TypeScript
Raw Normal View History

import { prisma } from '../config/database';
import { Prisma } from '@prisma/client';
import { config } from '../config';
import { logger } from '../config/logger';
import { listCourseResponse, getCourseResponse } from '../types/courses.types';
import { UnauthorizedError, ValidationError, ForbiddenError } from '../middleware/errorHandler';
export class CoursesService {
async ListCourses(): Promise<listCourseResponse> {
try {
const courses = await prisma.course.findMany();
return {
code: 200,
message: 'Courses fetched successfully',
total: courses.length,
data: courses,
};
} catch (error) {
logger.error('Failed to fetch courses', { error });
throw error;
}
}
async GetCourseById(id: number): Promise<getCourseResponse> {
try {
const course = await prisma.course.findUnique({ where: { id } });
return {
code: 200,
message: 'Course fetched successfully',
data: course,
};
} catch (error) {
logger.error('Failed to fetch course', { error });
throw error;
}
}
}