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 : []; }, );