fix: user changes
This commit is contained in:
@@ -111,11 +111,12 @@ import { objectToFormData } from '@/utils/object-to-formdata'
|
||||
import VoiceRecorder from '@/components/form/VoiceRecorder.vue'
|
||||
import ImageUploader from '@/components/form/ImageUploader.vue'
|
||||
import VideoPlayerBlock from '@/components/blocks/VideoPlayerBlock.vue'
|
||||
import { useUploadMediaMutation } from '@/services/query/auth'
|
||||
import BoxedIconTitleBlock from '@/components/blocks/BoxedIconTitleBlock.vue'
|
||||
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
|
||||
import {
|
||||
useStudentSessionQuery,
|
||||
useSubmitStudentSessionHomeworkMutation,
|
||||
useSubmitStudentHomeworkMutation,
|
||||
} from '@/services/query/student-sessions'
|
||||
|
||||
const route = useRoute()
|
||||
@@ -149,21 +150,39 @@ const errors = reactive({ audio: '', image: '' })
|
||||
|
||||
const canSubmit = computed(() => !!(homeworkAudio.value || homeworkImage.value))
|
||||
|
||||
const submitMutation = useSubmitStudentSessionHomeworkMutation()
|
||||
const submitMutation = useSubmitStudentHomeworkMutation()
|
||||
const uploadMediaMutation = useUploadMediaMutation()
|
||||
|
||||
const homeworkId = computed(() => session.value?.homeworkId ?? session.value?.homework?.id ?? null)
|
||||
|
||||
const uploadHomeworkFile = async (file) => {
|
||||
const fd = objectToFormData({ file, purpose: 'homework_file', context: 'homework' })
|
||||
const response = await uploadMediaMutation.mutateAsync(fd)
|
||||
const payload = response?.data ?? response
|
||||
return payload?.id ?? null
|
||||
}
|
||||
|
||||
const onSubmit = async () => {
|
||||
if (!canSubmit.value) {
|
||||
errors.audio = 'حداقل یک فایل صوتی یا تصویر ارسال کنید.'
|
||||
return
|
||||
}
|
||||
if (!homeworkId.value) {
|
||||
toast.error('تکلیفی برای این جلسه ثبت نشده است.')
|
||||
return
|
||||
}
|
||||
errors.audio = ''
|
||||
errors.image = ''
|
||||
try {
|
||||
const payload = { subType: 'homework' }
|
||||
if (homeworkAudio.value) payload.audio = homeworkAudio.value
|
||||
if (homeworkImage.value) payload.image = homeworkImage.value
|
||||
const fd = objectToFormData(payload)
|
||||
await submitMutation.mutateAsync({ id: sessionId.value, payload: fd })
|
||||
const files = [homeworkAudio.value, homeworkImage.value].filter(Boolean)
|
||||
for (const file of files) {
|
||||
const mediaId = await uploadHomeworkFile(file)
|
||||
if (!mediaId) throw new Error('upload failed')
|
||||
await submitMutation.mutateAsync({
|
||||
homeworkId: homeworkId.value,
|
||||
payload: { mediaId },
|
||||
})
|
||||
}
|
||||
toast.success('تکلیف با موفقیت ارسال شد.')
|
||||
homeworkAudio.value = null
|
||||
homeworkImage.value = null
|
||||
|
||||
Reference in New Issue
Block a user