feat: added transformToFormData helper

This commit is contained in:
Sergey Yarkov 2021-10-30 00:23:24 +03:00
parent 82c9021389
commit 1ceb083282
2 changed files with 19 additions and 8 deletions

View File

@ -33,3 +33,20 @@ export function userContainRoles(userRoles: IUserRole[], roles: UserRoleEnum[]):
export function removeEmptyValues(obj: object) {
return Object.fromEntries(Object.entries(obj).filter(([_, value]) => value !== null));
}
/**
* Transform object data to FormData
*
* @param data Input data
* @returns Data formatted in FormData
*/
export function transformToFormData(data: object): FormData {
const formData = new FormData();
/**
* Append value to form-data format
*/
Object.entries(data).forEach(([key, value]) => value && formData.append(key, value));
return formData;
}

View File

@ -1,4 +1,5 @@
import { AxiosInstance } from 'axios';
import * as helpers from '@educt/helpers';
import { IApiRespose, ICourse } from '@educt/interfaces';
import { CreateCourseParamsType, FetchCoursesParams } from '@educt/types';
import { CourseStatusEnum } from '@educt/enums';
@ -49,14 +50,7 @@ export class CourseService {
public async create(
data: CreateCourseParamsType
): Promise<IApiRespose<Pick<ICourse, 'id' | 'title' | 'description' | 'status' | 'created_at' | 'updated_at'>>> {
const formData = new FormData();
/**
* Append value to form-data format
*/
Object.entries(data).forEach(([key, value]) => value && formData.append(key, value));
const result = await this.api.post('/v1/courses', formData, {
const result = await this.api.post('/v1/courses', helpers.transformToFormData(data), {
headers: {
'Content-Type': 'multipart/form-data',
},