From 1ceb0832822ea16f983cac51f1e6d7fc46734554 Mon Sep 17 00:00:00 2001 From: Sergey Yarkov Date: Sat, 30 Oct 2021 00:23:24 +0300 Subject: [PATCH] feat: added transformToFormData helper --- src/helpers/index.ts | 17 +++++++++++++++++ src/services/CourseService.ts | 10 ++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/helpers/index.ts b/src/helpers/index.ts index 4e6cd7e..99d6b36 100644 --- a/src/helpers/index.ts +++ b/src/helpers/index.ts @@ -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; +} diff --git a/src/services/CourseService.ts b/src/services/CourseService.ts index 5cf6184..77af6aa 100644 --- a/src/services/CourseService.ts +++ b/src/services/CourseService.ts @@ -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>> { - 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', },