Files
2026-05-05 10:53:52 +02:00

67 lines
2.0 KiB
JavaScript

import {
ApiService
} from "./chunk-2TRRHRR7.js";
import {
Injectable,
inject,
map,
setClassMetadata,
ɵɵdefineInjectable
} from "./chunk-WI7WFVZR.js";
import {
__spreadProps,
__spreadValues
} from "./chunk-WDMUDEB6.js";
// src/app/services/course.service.ts
var INT_TO_TYPE = { 0: "Url", 1: "Video", 2: "Text", 3: "File" };
function normalizeType(r) {
return __spreadProps(__spreadValues({}, r), { type: typeof r.type === "number" ? INT_TO_TYPE[r.type] ?? "Url" : r.type });
}
var CourseService = class _CourseService {
api = inject(ApiService);
getCourses(search) {
const params = search ? { search } : void 0;
return this.api.get("/api/courses", params);
}
getCourseById(id) {
return this.api.get(`/api/courses/${id}`).pipe(map((c) => __spreadProps(__spreadValues({}, c), {
topics: (c.topics ?? []).map((t) => __spreadProps(__spreadValues({}, t), {
resources: (t.resources ?? []).map(normalizeType)
}))
})));
}
createCourse(title, description, creatorId) {
return this.api.post("/api/courses", { title, description, creatorId });
}
updateCourse(id, title, description) {
return this.api.put(`/api/courses/${id}`, { id, title, description });
}
publishCourse(id) {
return this.api.patch(`/api/courses/${id}/publish`, {});
}
deleteCourse(id) {
return this.api.delete(`/api/courses/${id}`);
}
getMyCourses(userId) {
return this.api.get(`/api/users/${userId}/courses`);
}
static \u0275fac = function CourseService_Factory(__ngFactoryType__) {
return new (__ngFactoryType__ || _CourseService)();
};
static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _CourseService, factory: _CourseService.\u0275fac, providedIn: "root" });
};
(() => {
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CourseService, [{
type: Injectable,
args: [{
providedIn: "root"
}]
}], null, null);
})();
export {
CourseService
};
//# sourceMappingURL=chunk-6K3TDILH.js.map