import { BaseController } from "@/controllers/base-controller.ts"; import { LearningPath } from "@/data-objects/learning-paths/learning-path.ts"; import type { Language } from "@/data-objects/language.ts"; import { single } from "@/utils/response-assertions.ts"; import type { LearningPathDTO } from "@/data-objects/learning-paths/learning-path-dto.ts"; export class LearningPathController extends BaseController { constructor() { super("learningPath"); } async search(query: string): Promise { const dtos = await this.get("/", { search: query }); return dtos.map((dto) => LearningPath.fromDTO(dto)); } async getBy( hruid: string, language: Language, options?: { forGroup?: string; forStudent?: string }, ): Promise { const dtos = await this.get("/", { hruid, language, forGroup: options?.forGroup, forStudent: options?.forStudent, }); return LearningPath.fromDTO(single(dtos)); } async getAllByTheme(theme: string): Promise { const dtos = await this.get("/", { theme }); return dtos.map((dto) => LearningPath.fromDTO(dto)); } }