@kctolli/formhelper
Version:
Form Helper Package to make building the forms easier
58 lines (50 loc) • 1.62 kB
text/typescript
import axios from 'axios';
export default class FormService {
private baseUrl: string = "";
constructor(baseUrl = "") {
this.baseUrl = baseUrl;
}
public submitForm = async (path: string, formData: any) => {
try {
const { result } = await this.sendRequest(path, formData, 'post');
return result || false;
} catch (e) {
console.error('Error submitting support form [submitSupportForm] -', e);
return false;
}
};
private sendRequest = async (
path: string,
body: any,
method: string = 'get',
options: any = { headers: { 'Content-Type': 'multipart/form-data' } }
) => {
try {
const link = `${this.baseUrl}${path}`;
// @ts-ignore
const { data } = await axios[method].apply(null, [link, body, options]);
return data;
} catch (e) {
console.error(`Error sending support request for ${path} [sendRequest] -`, e);
return false;
}
};
/**
* Convert form object to form data
*
* Log form data in console
* for (var [key, value] of formData.entries()) {
* console.log({key, value});
* }
*
* @param formObj
* @returns FormData
*/
public static createFormData = ( formObj: Record<string, any> ) : FormData => {
const formData = new FormData();
Object.entries(formObj).forEach(([fieldName, fieldValue]) => {
formData.append(fieldName, fieldValue);
});
return formData;
}
}