mirror of
https://github.com/muerwre/orchidmap-front.git
synced 2025-04-24 18:46:40 +07:00
added post map interceptor
This commit is contained in:
parent
fda24c78b0
commit
9c436d348c
5 changed files with 33 additions and 29 deletions
19
.drone.yml
19
.drone.yml
|
@ -64,21 +64,4 @@ steps:
|
|||
- cp -a $${ENV_PATH}/${DRONE_BRANCH}/. $${BUILD_PATH}/${DRONE_BRANCH}
|
||||
- docker-compose build
|
||||
- docker-compose up -d
|
||||
# - name: telgram_notify
|
||||
# image: appleboy/drone-telegram
|
||||
# when:
|
||||
# status:
|
||||
# - success
|
||||
# - failure
|
||||
# settings:
|
||||
# token:
|
||||
# from_secret: telegram_token
|
||||
# to:
|
||||
# from_secret: telegram_chat_id
|
||||
# format: markdown
|
||||
# message: >
|
||||
# {{#success build.status}}🤓{{else}}😨{{/success}}
|
||||
# [{{repo.name}} / {{commit.branch}}]({{ build.link }})
|
||||
# ```
|
||||
# {{ commit.message }}
|
||||
# ```
|
||||
|
||||
|
|
|
@ -69,13 +69,13 @@ export function configureStore(): { store: Store<any>; persistor: Persistor } {
|
|||
|
||||
// Pass token to axios
|
||||
api.interceptors.request.use(options => {
|
||||
const token = store.getState().user.token;
|
||||
const token = store.getState().user.user.token;
|
||||
|
||||
if (!token) {
|
||||
return options;
|
||||
}
|
||||
|
||||
return assocPath(['headers', 'authorization'], `Bearer ${token}`, options);
|
||||
return assocPath(['headers', 'authorization'], token, options);
|
||||
});
|
||||
|
||||
// Logout on 401
|
||||
|
|
|
@ -6,6 +6,8 @@ import { LatLngLiteral } from 'leaflet';
|
|||
import { IRoute } from '~/redux/map/types';
|
||||
import { INominatimResult } from '~/redux/types';
|
||||
import { api } from './instance';
|
||||
import { postMapInterceptor } from '~/utils/api/interceptors';
|
||||
import { PostMapRequest, PostMapResponse } from '~/utils/api/types';
|
||||
|
||||
interface IGetRouteList {
|
||||
min: number;
|
||||
|
@ -62,15 +64,9 @@ export const postMap = ({
|
|||
provider,
|
||||
is_public,
|
||||
description,
|
||||
}: Partial<IRoute> & {
|
||||
force: boolean;
|
||||
}) =>
|
||||
}: PostMapRequest) =>
|
||||
api
|
||||
.post<{
|
||||
route: IRoute;
|
||||
error?: string;
|
||||
code?: string;
|
||||
}>(
|
||||
.post<PostMapResponse>(
|
||||
API.POST_MAP,
|
||||
{
|
||||
route: {
|
||||
|
@ -86,7 +82,7 @@ export const postMap = ({
|
|||
},
|
||||
force,
|
||||
},
|
||||
);
|
||||
).catch(postMapInterceptor);
|
||||
|
||||
export const checkIframeToken = ({
|
||||
viewer_id,
|
||||
|
|
14
src/utils/api/interceptors.ts
Normal file
14
src/utils/api/interceptors.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
import { AxiosError } from 'axios';
|
||||
import { PostMapResponse } from '~/utils/api/types';
|
||||
|
||||
export const postMapInterceptor = (res: AxiosError<PostMapResponse>) => {
|
||||
if (res.response?.data.code) {
|
||||
return res.response;
|
||||
}
|
||||
|
||||
if (res.response?.data.error) {
|
||||
throw new Error(res.response?.data.error);
|
||||
}
|
||||
|
||||
throw res;
|
||||
};
|
11
src/utils/api/types.ts
Normal file
11
src/utils/api/types.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { IRoute } from '~/redux/map/types';
|
||||
|
||||
export interface PostMapResponse {
|
||||
route: IRoute;
|
||||
error?: string;
|
||||
code?: string;
|
||||
}
|
||||
|
||||
export type PostMapRequest = Partial<IRoute> & {
|
||||
force: boolean;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue