Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | 1x 1x 1x 1x 30x 30x 1x 1x 1x 1x 5x 4x 4x 4x 4x 5x 5x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | export default class Courses {
#client;
constructor(client) {
this.#client = client;
}
getByCod(cod) { return this.#client.get(`/courses/cod/${cod}`); }
get(id = null, { page = 1, perPage = 15 } = {}) {
if (id) return this.#client.get(`/courses/${id}`);
const params = new URLSearchParams();
if (page) params.set('page', page);
if (perPage) params.set('per_page', perPage);
const qs = params.toString();
return this.#client.get(qs ? `/courses?${qs}` : '/courses');
}
create(data) { return this.#client.put('/courses', data); }
edit(id, data) { return this.#client.patch(`/courses/${id}`, data); }
delete(id) { return this.#client.del(`/courses/${id}`); }
dates(courseId) {
const base = `/courses/${courseId}/dates`;
return {
get: (id = null) => id ? this.#client.get(`${base}/${id}`) : this.#client.get(base),
create: (data) => this.#client.put(base, data),
edit: (id, data) => this.#client.patch(`${base}/${id}`, data),
delete: (id) => this.#client.del(`${base}/${id}`),
};
}
sessions(courseId) {
const base = `/courses/${courseId}/sessions`;
return {
get: (id = null) => id ? this.#client.get(`${base}/${id}`) : this.#client.get(base),
create: (data) => this.#client.put(base, data),
edit: (id, data) => this.#client.patch(`${base}/${id}`, data),
delete: (id) => this.#client.del(`${base}/${id}`),
};
}
premiums(courseId) {
const client = this.#client;
const base = `/courses/${courseId}/premiums`;
return {
get: (id = null) => id ? client.get(`${base}/${id}`) : client.get(base),
create: (data) => client.put(base, data),
edit: (id, data) => client.patch(`${base}/${id}`, data),
delete: (id) => client.del(`${base}/${id}`),
items: (premiumId) => {
const iBase = `${base}/${premiumId}/items`;
return {
get: (id = null) => id ? client.get(`${iBase}/${id}`) : client.get(iBase),
create: (data) => client.put(iBase, data),
edit: (id, data) => client.patch(`${iBase}/${id}`, data),
delete: (id) => client.del(`${iBase}/${id}`),
};
},
};
}
levels(courseId) {
const client = this.#client;
const base = `/courses/${courseId}/levels`;
return {
get: (id = null) => id ? client.get(`${base}/${id}`) : client.get(base),
create: (data) => client.put(base, data),
edit: (id, data) => client.patch(`${base}/${id}`, data),
delete: (id) => client.del(`${base}/${id}`),
lessons: (levelId) => {
const lBase = `${base}/${levelId}/lessons`;
return {
get: (id = null) => id ? client.get(`${lBase}/${id}`) : client.get(lBase),
create: (data) => client.put(lBase, data),
edit: (id, data) => client.patch(`${lBase}/${id}`, data),
delete: (id) => client.del(`${lBase}/${id}`),
materials: (lessonId) => {
const mBase = `${lBase}/${lessonId}/materials`;
return {
get: (id = null) => id ? client.get(`${mBase}/${id}`) : client.get(mBase),
create: (data) => client.put(mBase, data),
edit: (id, data) => client.patch(`${mBase}/${id}`, data),
delete: (id) => client.del(`${mBase}/${id}`),
};
},
};
},
};
}
}
|