learnhouse/apps/web/services/courses/activities.ts
2024-02-09 21:22:15 +01:00

108 lines
2.6 KiB
TypeScript

import { getAPIUrl } from '@services/config/config'
import {
RequestBody,
RequestBodyForm,
RequestBodyWithAuthHeader,
} from '@services/utils/ts/requests'
export async function createActivity(data: any, chapter_id: any, org_id: any) {
data.content = {}
// remove chapter_id from data
delete data.chapterId
const result = await fetch(
`${getAPIUrl()}activities/?coursechapter_id=${chapter_id}&org_id=${org_id}`,
RequestBody('POST', data, null)
)
const res = await result.json()
return res
}
export async function createFileActivity(
file: File,
type: string,
data: any,
chapter_id: any
) {
// Send file thumbnail as form data
const formData = new FormData()
formData.append('chapter_id', chapter_id)
let endpoint = ''
if (type === 'video') {
formData.append('name', data.name)
formData.append('video_file', file)
endpoint = `${getAPIUrl()}activities/video`
} else if (type === 'documentpdf') {
formData.append('pdf_file', file)
formData.append('name', data.name)
endpoint = `${getAPIUrl()}activities/documentpdf`
} else {
// Handle other file types here
}
const result: any = await fetch(
endpoint,
RequestBodyForm('POST', formData, null)
)
const res = await result.json()
return res
}
export async function createExternalVideoActivity(
data: any,
activity: any,
chapter_id: any
) {
// add coursechapter_id to data
data.chapter_id = chapter_id
data.activity_id = activity.id
const result = await fetch(
`${getAPIUrl()}activities/external_video`,
RequestBody('POST', data, null)
)
const res = await result.json()
return res
}
export async function getActivity(activity_id: any, next: any) {
const result = await fetch(
`${getAPIUrl()}activities/${activity_id}`,
RequestBody('GET', null, next)
)
const res = await result.json()
return res
}
export async function deleteActivity(activity_id: any) {
const result = await fetch(
`${getAPIUrl()}activities/${activity_id}`,
RequestBody('DELETE', null, null)
)
const res = await result.json()
return res
}
export async function getActivityWithAuthHeader(
activity_uuid: any,
next: any,
access_token: string
) {
const result = await fetch(
`${getAPIUrl()}activities/activity_${activity_uuid}`,
RequestBodyWithAuthHeader('GET', null, next, access_token)
)
const res = await result.json()
return res
}
export async function updateActivity(data: any, activity_uuid: string) {
const result = await fetch(
`${getAPIUrl()}activities/${activity_uuid}`,
RequestBody('PUT', data, null)
)
const res = await result.json()
return res
}