This repository has been archived on 2026-05-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
GallerySubscriber/frontend/src/services/api.js
T
2026-01-29 19:42:14 -05:00

72 lines
2.6 KiB
JavaScript

import axios from 'axios'
const api = axios.create({
baseURL: '/api',
timeout: 30000,
headers: {
'Content-Type': 'application/json',
},
})
// Subscriptions API
export const subscriptionsApi = {
list: (params = {}) => api.get('/subscriptions', { params }),
get: (id) => api.get(`/subscriptions/${id}`),
create: (data) => api.post('/subscriptions', data),
update: (id, data) => api.patch(`/subscriptions/${id}`, data),
delete: (id) => api.delete(`/subscriptions/${id}`),
triggerCheck: (id) => api.post(`/subscriptions/${id}/check`),
listSources: (id) => api.get(`/subscriptions/${id}/sources`),
addSource: (id, data) => api.post(`/subscriptions/${id}/sources`, data),
}
// Sources API
export const sourcesApi = {
list: (params = {}) => api.get('/sources', { params }),
get: (id) => api.get(`/sources/${id}`),
create: (data) => api.post('/sources', data),
update: (id, data) => api.patch(`/sources/${id}`, data),
delete: (id) => api.delete(`/sources/${id}`),
triggerCheck: (id) => api.post(`/sources/${id}/check`),
}
// Downloads API
export const downloadsApi = {
list: (params = {}) => api.get('/downloads', { params }),
get: (id) => api.get(`/downloads/${id}`),
retry: (id) => api.post(`/downloads/${id}/retry`),
stats: (params = {}) => api.get('/downloads/stats', { params }),
recentActivity: (params = {}) => api.get('/downloads/recent-activity', { params }),
resetOrphaned: (thresholdMinutes = 0) => api.post('/downloads/reset-orphaned', { threshold_minutes: thresholdMinutes }),
requeueStale: (thresholdMinutes = 0) => api.post('/downloads/requeue-stale', { threshold_minutes: thresholdMinutes }),
}
// Credentials API
export const credentialsApi = {
list: () => api.get('/credentials'),
upload: (data) => api.post('/credentials', data),
delete: (platform) => api.delete(`/credentials/${platform}`),
verify: (platform) => api.post('/credentials/verify', { platform }),
}
// Settings API
export const settingsApi = {
get: () => api.get('/settings'),
update: (data) => api.patch('/settings', data),
getGalleryDL: () => api.get('/settings/gallery-dl'),
updateGalleryDL: (config) => api.put('/settings/gallery-dl', { config }),
getApiKey: () => api.get('/settings/api-key'),
regenerateApiKey: () => api.post('/settings/api-key/regenerate'),
getLogs: (params = {}) => api.get('/settings/logs', { params }),
refreshStorageStats: () => api.post('/settings/storage-stats/refresh'),
}
// Platforms API
export const platformsApi = {
list: () => api.get('/platforms'),
get: (platform) => api.get(`/platforms/${platform}`),
getConfigSchema: (platform) => api.get(`/platforms/${platform}/config-schema`),
}
export default api