import { AxiosInstance } from "axios"; import { BrainRoleType } from "@/lib/components/NavBar/components/NavItems/components/BrainsDropDown/components/BrainActions/types"; import { Brain } from "@/lib/context/BrainProvider/types"; import { Document } from "@/lib/types/Document"; export const getBrainDocuments = async ( brainId: string, axiosInstance: AxiosInstance ): Promise => { const response = await axiosInstance.get<{ documents: Document[] }>( `/explore/?brain_id=${brainId}` ); return response.data.documents; }; export const createBrain = async ( name: string, axiosInstance: AxiosInstance ): Promise => { const createdBrain = (await axiosInstance.post(`/brains/`, { name })) .data; return createdBrain; }; export const getBrain = async ( brainId: string, axiosInstance: AxiosInstance ): Promise => { const brain = ( await axiosInstance.get(`/brains/${brainId}/`) ).data; return brain; }; export const deleteBrain = async ( brainId: string, axiosInstance: AxiosInstance ): Promise => { await axiosInstance.delete(`/brain/${brainId}/subscription`); }; export const getDefaultBrain = async ( axiosInstance: AxiosInstance ): Promise => { const defaultBrain = (await axiosInstance.get(`/brains/default/`)) .data; return { id: defaultBrain.id, name: defaultBrain.name }; }; export const getBrains = async ( axiosInstance: AxiosInstance ): Promise => { const brains = (await axiosInstance.get<{ brains: Brain[] }>(`/brains/`)) .data; return brains.brains; }; export type Subscription = { email: string; rights: BrainRoleType }; export const addBrainSubscriptions = async ( brainId: string, subscriptions: Subscription[], axiosInstance: AxiosInstance ): Promise => { await axiosInstance.post(`/brain/${brainId}/subscription`, subscriptions); }; export const getBrainUsers = async ( brainId: string, axiosInstance: AxiosInstance ): Promise => { return (await axiosInstance.get(`/brain/${brainId}/users`)) .data; };