mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-18 20:09:25 +00:00
103 lines
2.9 KiB
TypeScript
103 lines
2.9 KiB
TypeScript
import { getAPIUrl } from '@services/config/config'
|
|
import {
|
|
RequestBodyFormWithAuthHeader,
|
|
RequestBodyWithAuthHeader,
|
|
errorHandling,
|
|
getResponseMetadata,
|
|
} from '@services/utils/ts/requests'
|
|
|
|
/*
|
|
This file includes only POST, PUT, DELETE requests
|
|
GET requests are called from the frontend using SWR (https://swr.vercel.app/)
|
|
*/
|
|
|
|
export async function getOrgCourses(
|
|
org_id: number,
|
|
next: any,
|
|
access_token: any
|
|
) {
|
|
const result: any = await fetch(
|
|
`${getAPIUrl()}courses/org_slug/${org_id}/page/1/limit/10`,
|
|
RequestBodyWithAuthHeader('GET', null, next, access_token)
|
|
)
|
|
const res = await errorHandling(result)
|
|
return res
|
|
}
|
|
|
|
export async function getCourseMetadata(
|
|
course_uuid: any,
|
|
next: any,
|
|
access_token: string
|
|
) {
|
|
const result = await fetch(
|
|
`${getAPIUrl()}courses/course_${course_uuid}/meta`,
|
|
RequestBodyWithAuthHeader('GET', null, next, access_token)
|
|
)
|
|
const res = await errorHandling(result)
|
|
return res
|
|
}
|
|
|
|
export async function updateCourse(course_uuid: any, data: any, access_token:any) {
|
|
const result: any = await fetch(
|
|
`${getAPIUrl()}courses/${course_uuid}`,
|
|
RequestBodyWithAuthHeader('PUT', data, null,access_token)
|
|
)
|
|
const res = await errorHandling(result)
|
|
return res
|
|
}
|
|
|
|
export async function getCourse(course_uuid: string, next: any, access_token:any) {
|
|
const result: any = await fetch(
|
|
`${getAPIUrl()}courses/${course_uuid}`,
|
|
RequestBodyWithAuthHeader('GET', null, next,access_token)
|
|
)
|
|
const res = await errorHandling(result)
|
|
return res
|
|
}
|
|
|
|
export async function updateCourseThumbnail(course_uuid: any, thumbnail: any, access_token:any) {
|
|
const formData = new FormData()
|
|
formData.append('thumbnail', thumbnail)
|
|
const result: any = await fetch(
|
|
`${getAPIUrl()}courses/${course_uuid}/thumbnail`,
|
|
RequestBodyFormWithAuthHeader('PUT', formData, null,access_token)
|
|
)
|
|
const res = await getResponseMetadata(result)
|
|
return res
|
|
}
|
|
|
|
export async function createNewCourse(
|
|
org_id: string,
|
|
course_body: any,
|
|
thumbnail: any,
|
|
access_token: any
|
|
) {
|
|
// Send file thumbnail as form data
|
|
const formData = new FormData()
|
|
formData.append('name', course_body.name)
|
|
formData.append('description', course_body.description)
|
|
formData.append('public', course_body.visibility)
|
|
formData.append('learnings', course_body.tags)
|
|
formData.append('tags', course_body.tags)
|
|
formData.append('about', course_body.description)
|
|
|
|
if (thumbnail) {
|
|
formData.append('thumbnail', thumbnail)
|
|
}
|
|
|
|
const result = await fetch(
|
|
`${getAPIUrl()}courses/?org_id=${org_id}`,
|
|
RequestBodyFormWithAuthHeader('POST', formData, null, access_token)
|
|
)
|
|
const res = await errorHandling(result)
|
|
return res
|
|
}
|
|
|
|
export async function deleteCourseFromBackend(course_uuid: any, access_token:any) {
|
|
const result: any = await fetch(
|
|
`${getAPIUrl()}courses/${course_uuid}`,
|
|
RequestBodyWithAuthHeader('DELETE', null, null,access_token)
|
|
)
|
|
const res = await errorHandling(result)
|
|
return res
|
|
}
|