Newer
Older
import { pluginSchema } from '@/models/pluginSchema';
import { axiosInstance } from '@/services/api/utils/axiosInstance';
import { MinervaPlugin } from '@/types/models';
import { validateDataUsingZodSchema } from '@/utils/validateDataUsingZodSchema';
import { createAsyncThunk } from '@reduxjs/toolkit';
import { z } from 'zod';
import { apiPath } from '../apiPath';
export const getAllPlugins = createAsyncThunk(
'plugins/getAllPlugins',
async (): Promise<MinervaPlugin[]> => {
const response = await axiosInstance.get<MinervaPlugin[]>(apiPath.getAllPlugins());
const isDataValid = validateDataUsingZodSchema(response.data, z.array(pluginSchema));
return isDataValid ? response.data : [];
},
);