1
0
Fork 0
mirror of https://github.com/pawelmalak/flame.git synced 2025-08-07 03:35:18 +02:00

Add and delete custom search provider actions and controllers

This commit is contained in:
unknown 2021-10-11 13:03:31 +02:00
parent 459523dfd2
commit a885440fef
15 changed files with 392 additions and 82 deletions

View file

@ -28,7 +28,11 @@ import {
GetConfigAction,
UpdateConfigAction,
} from './';
import { FetchQueriesAction } from './config';
import {
AddQueryAction,
DeleteQueryAction,
FetchQueriesAction,
} from './config';
export enum ActionTypes {
// Theme
@ -65,6 +69,8 @@ export enum ActionTypes {
getConfig = 'GET_CONFIG',
updateConfig = 'UPDATE_CONFIG',
fetchQueries = 'FETCH_QUERIES',
addQuery = 'ADD_QUERY',
deleteQuery = 'DELETE_QUERY',
}
export type Action =
@ -96,4 +102,6 @@ export type Action =
// Config
| GetConfigAction
| UpdateConfigAction
| FetchQueriesAction;
| FetchQueriesAction
| AddQueryAction
| DeleteQueryAction;

View file

@ -60,9 +60,7 @@ export interface FetchQueriesAction {
export const fetchQueries =
() => async (dispatch: Dispatch<FetchQueriesAction>) => {
try {
const res = await axios.get<ApiResponse<Query[]>>(
'/api/config/0/queries'
);
const res = await axios.get<ApiResponse<Query[]>>('/api/queries');
dispatch<FetchQueriesAction>({
type: ActionTypes.fetchQueries,
@ -72,3 +70,43 @@ export const fetchQueries =
console.log(err);
}
};
export interface AddQueryAction {
type: ActionTypes.addQuery;
payload: Query;
}
export const addQuery =
(query: Query) => async (dispatch: Dispatch<AddQueryAction>) => {
try {
const res = await axios.post<ApiResponse<Query>>('/api/queries', query);
dispatch<AddQueryAction>({
type: ActionTypes.addQuery,
payload: res.data.data,
});
} catch (err) {
console.log(err);
}
};
export interface DeleteQueryAction {
type: ActionTypes.deleteQuery;
payload: Query[];
}
export const deleteQuery =
(prefix: string) => async (dispatch: Dispatch<DeleteQueryAction>) => {
try {
const res = await axios.delete<ApiResponse<Query[]>>(
`/api/queries/${prefix}`
);
dispatch<DeleteQueryAction>({
type: ActionTypes.deleteQuery,
payload: res.data.data,
});
} catch (err) {
console.log(err);
}
};

View file

@ -34,6 +34,20 @@ const fetchQueries = (state: State, action: Action): State => {
};
};
const addQuery = (state: State, action: Action): State => {
return {
...state,
customQueries: [...state.customQueries, action.payload],
};
};
const deleteQuery = (state: State, action: Action): State => {
return {
...state,
customQueries: action.payload,
};
};
const configReducer = (state: State = initialState, action: Action) => {
switch (action.type) {
case ActionTypes.getConfig:
@ -42,6 +56,10 @@ const configReducer = (state: State = initialState, action: Action) => {
return updateConfig(state, action);
case ActionTypes.fetchQueries:
return fetchQueries(state, action);
case ActionTypes.addQuery:
return addQuery(state, action);
case ActionTypes.deleteQuery:
return deleteQuery(state, action);
default:
return state;
}