feat: add api requests
This commit is contained in:
35
src/shared/api/api.service.ts
Normal file
35
src/shared/api/api.service.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { API_ROUTES } from '@shared/config/routes';
|
||||
import { TBaseForm } from '@shared/api/api.types';
|
||||
import { CORE } from '@shared/config/core';
|
||||
|
||||
type TRequest = TBaseForm;
|
||||
|
||||
const sendFormFn = async ({ ...props }: TRequest) => {
|
||||
try {
|
||||
const response = await fetch('/api' + API_ROUTES.SEND_FORM, {
|
||||
method: 'POST',
|
||||
credentials: 'include',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
...props,
|
||||
secure: CORE.MAIL_SECURE_KEY,
|
||||
}),
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
return response;
|
||||
} else {
|
||||
if (response.status === 400) throw new Error(`400 Bad request`);
|
||||
if (response.status === 401) throw new Error(`401 Unauthorized`);
|
||||
if (response.status === 500) throw new Error('500 Internal server error');
|
||||
|
||||
throw new Error(`${response.status} - Network response failure`);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
};
|
||||
|
||||
export { sendFormFn };
|
||||
6
src/shared/api/api.types.ts
Normal file
6
src/shared/api/api.types.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export type TBaseForm = {
|
||||
form: string;
|
||||
name?: string;
|
||||
phone: string;
|
||||
message?: string;
|
||||
};
|
||||
Reference in New Issue
Block a user