Skip to content
Snippets Groups Projects
Verified Commit c91f27f2 authored by Defendi Alberto's avatar Defendi Alberto
Browse files

Remove decamelizer since now is done automatically.

parent 5f7a08f5
No related branches found
No related tags found
2 merge requests!69Possibility to insert a reservation and new docs.,!62Set up axios middleware.
Pipeline #13016 passed
......@@ -3,7 +3,7 @@ import { ThemeProvider } from '@material-ui/core/styles';
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
import { AuthRoutes, NonAuthRoutes } from 'api/routes';
import { Roles } from 'api/userRoles';
import { configDjangoCookieName } from 'api/configDjangoCookieName';
import { configDjangoCookieName } from 'api/axios/configDjangoCookieName';
import { muiTheme } from 'App.style';
import { withAuthorization } from 'components/Authorization/Authorization';
import { AuthUser } from 'components/Auth/Auth';
......@@ -11,6 +11,7 @@ import { Dashboard } from 'components/Dashboard/Dashboard';
import { NotFound } from 'components/NotFound/NotFound';
import { Unauthorized } from 'components/Unauthorized/Unauthorized';
import { LandingPage } from 'components/LandingPage/LandingPage';
import { configureInterceptors } from 'api/axios/configureInterceptors';
const All = withAuthorization([
Roles.admin,
......@@ -23,6 +24,7 @@ const All = withAuthorization([
* Entry point of the app.
*/
export const App: FC = () => {
configureInterceptors();
configDjangoCookieName();
return (
......
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
import { camelizeKeys, decamelizeKeys } from 'humps';
const api = axios.create();
// Axios middleware to convert all api responses to camelCase
api.interceptors.response.use((response: AxiosResponse) => {
if (
response.data &&
response.headers['content-type'] === 'application/json'
) {
response.data = camelizeKeys(response.data);
}
return response;
});
// Axios middleware to convert all api requests to snake_case
api.interceptors.request.use((config: AxiosRequestConfig) => {
const newConfig = { ...config };
newConfig.url = `api/${config.url}`;
if (newConfig.headers['Content-Type'] === 'multipart/form-data')
return newConfig;
if (config.params) {
newConfig.params = decamelizeKeys(config.params);
}
if (config.data) {
newConfig.data = decamelizeKeys(config.data);
}
return newConfig;
});
export default api;
import axios from 'axios';
/**
* Config for django compatibility.
*/
export const configDjangoCookieName = (): void => {
axios.defaults.xsrfHeaderName = 'X-CSRFTOKEN';
axios.defaults.xsrfCookieName = 'csrftoken';
axios.defaults.withCredentials = true;
};
import axios from 'axios';
import { decamelizeKeys } from 'humps';
import api from 'api/api';
import { RoleObjectType } from './RoleObjectType';
export const getRoleID = async (): Promise<RoleObjectType> =>
axios('/api/web/login/get_role').then((res) => res.data.role_object);
export const getRoleObject = async (): Promise<RoleObjectType> =>
axios('/api/web/login/get_role').then((res) => res.data.roleObject);
import axios from 'axios';
import { camelizeKeys } from 'humps';
import { ResponseProps } from './ResponseProps';
export const getSeniorList = async (name: string): Promise<ResponseProps[]> =>
axios
.get(`/api/web/seniors/by_name/${name}?fields=user,id,member_card_number`)
.then((res) => camelizeKeys(res.data) as ResponseProps[]);
.then((res) => res.data as ResponseProps[]);
import axios from 'axios';
import { camelizeKeys } from 'humps';
import { ResponseProps } from './ResponseProps';
export const getSeniorListByCard = async (
......@@ -9,5 +8,5 @@ export const getSeniorListByCard = async (
.get(
`/api/web/seniors/by_member_card/${card}?fields=user,id,member_card_number`,
)
.then((res) => camelizeKeys(res.data) as ResponseProps[])
.then((res) => res.data as ResponseProps[])
.catch(() => [] as ResponseProps[]);
......@@ -7,5 +7,5 @@ import axios from 'axios';
*/
export const isAuthenticated = async (): Promise<boolean> =>
axios('/api/web/login/is_authenticated').then(
(res) => res.data.is_authenticated,
(res) => res.data.isAuthenticated,
);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment