2021-05-10 19:02:16 +02:00
|
|
|
import axios from 'axios';
|
|
|
|
import { Dispatch } from 'redux';
|
2021-05-11 16:44:05 +02:00
|
|
|
import { ActionTypes } from './actionTypes';
|
|
|
|
import { App, AppResponse } from '../../interfaces/App';
|
|
|
|
|
|
|
|
export interface GetAppsAction<T> {
|
|
|
|
type: ActionTypes.getApps | ActionTypes.getAppsSuccess | ActionTypes.getAppsError,
|
|
|
|
payload: T
|
|
|
|
}
|
2021-05-10 19:02:16 +02:00
|
|
|
|
|
|
|
export const getApps = () => async (dispatch: Dispatch) => {
|
2021-05-11 16:44:05 +02:00
|
|
|
dispatch<GetAppsAction<undefined>>({
|
|
|
|
type: ActionTypes.getApps,
|
|
|
|
payload: undefined
|
|
|
|
});
|
2021-05-10 19:02:16 +02:00
|
|
|
|
|
|
|
try {
|
2021-05-11 16:44:05 +02:00
|
|
|
const res = await axios.get<AppResponse>('/api/apps');
|
2021-05-10 19:02:16 +02:00
|
|
|
|
2021-05-11 16:44:05 +02:00
|
|
|
dispatch<GetAppsAction<App[]>>({
|
|
|
|
type: ActionTypes.getAppsSuccess,
|
2021-05-10 19:02:16 +02:00
|
|
|
payload: res.data.data
|
|
|
|
})
|
|
|
|
} catch (err) {
|
2021-05-11 16:44:05 +02:00
|
|
|
dispatch<GetAppsAction<string>>({
|
|
|
|
type: ActionTypes.getAppsError,
|
2021-05-10 19:02:16 +02:00
|
|
|
payload: err.data.data
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|