import { axiosInstance } from './axios'; import type { Asset, Organization } from '../types/assets'; export const getAssets = async (): Promise => { const response = await axiosInstance.get('/assets'); return response.data; }; export const getOrganizations = async (): Promise => { const response = await axiosInstance.get('/organizations'); return response.data; }; export const uploadAsset = async (formData: FormData): Promise => { await axiosInstance.post('/assets/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }); }; export const updateAsset = async ( id: string, payload: { title?: string; description?: string; categoryId?: string; subcategory?: string; tags?: string[]; githubUrl?: string; isDownloadable?: boolean; shares?: Array<{ organizationId: string; userId: string | null }>; } ): Promise => { await axiosInstance.patch(`/assets/${id}`, payload); }; export const deleteAsset = async (id: string): Promise => { await axiosInstance.delete(`/assets/${id}`); }; export const requestDownload = async (id: string): Promise => { await axiosInstance.post(`/assets/${id}/request-download`); }; export const approveDownloadRequest = async (assetId: string, requestId: string): Promise => { await axiosInstance.post(`/assets/${assetId}/approve-download/${requestId}`); }; export const rejectDownloadRequest = async (assetId: string, requestId: string): Promise => { await axiosInstance.post(`/assets/${assetId}/reject-download/${requestId}`); }; export const downloadAssetFile = async (id: string): Promise => { await axiosInstance.post(`/assets/${id}/download`); }; export const bulkShareAssets = async ( assetIds: string[], shares: Array<{ organizationId: string; userId: string | null }> ): Promise => { await axiosInstance.patch('/assets/bulk-share', { assetIds, shares }); };