feat: teacher get, post en delete route
This commit is contained in:
parent
b8db32161f
commit
6b87722469
6 changed files with 166 additions and 24 deletions
38
backend/src/services/teachers.ts
Normal file
38
backend/src/services/teachers.ts
Normal file
|
@ -0,0 +1,38 @@
|
|||
import {getTeacherRepository} from "../data/repositories.js";
|
||||
import {mapToTeacher, mapToTeacherDTO, TeacherDTO} from "../interfaces/teacher.js";
|
||||
import { Teacher } from "../entities/users/teacher.entity";
|
||||
|
||||
|
||||
export async function fetchAllTeachers(): Promise<TeacherDTO[]> {
|
||||
const teacherRepository = getTeacherRepository();
|
||||
const teachers = await teacherRepository.find({});
|
||||
|
||||
return teachers.map(mapToTeacherDTO);
|
||||
}
|
||||
|
||||
export async function createTeacher(teacherData: TeacherDTO): Promise<Teacher> {
|
||||
const teacherRepository = getTeacherRepository();
|
||||
const newTeacher = mapToTeacher(teacherData);
|
||||
|
||||
await teacherRepository.addTeacher(newTeacher);
|
||||
return newTeacher;
|
||||
}
|
||||
|
||||
export async function fetchTeacherByUsername(username: string): Promise<TeacherDTO | null> {
|
||||
const teacherRepository = getTeacherRepository();
|
||||
const teacher = await teacherRepository.findByUsername(username);
|
||||
|
||||
return teacher ? mapToTeacherDTO(teacher) : null;
|
||||
}
|
||||
|
||||
export async function deleteTeacher(username: string): Promise<TeacherDTO | null> {
|
||||
const teacherRepository = getTeacherRepository();
|
||||
const teacher = await teacherRepository.findByUsername(username);
|
||||
|
||||
if (!teacher)
|
||||
return null;
|
||||
|
||||
await teacherRepository.deleteByUsername(username);
|
||||
return teacher;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue