feat: ajout de la gestion des sources de contenu avec création de composants, formulaires et API pour l'importation, l'exportation et la configuration des sources de scraping.
This commit is contained in:
parent
32b4e4fbb2
commit
dac2f91998
@@ -0,0 +1,86 @@
|
||||
import axios from 'axios';
|
||||
|
||||
export class ApiContentSourceRepository {
|
||||
constructor() {
|
||||
this.apiClient = axios.create({
|
||||
baseURL: '/api',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère toutes les sources de contenu
|
||||
*/
|
||||
async getAll() {
|
||||
try {
|
||||
const response = await this.apiClient.get('/content-sources');
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
throw new Error(error.response?.data?.message || 'Erreur lors de la récupération des sources');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère une source de contenu par son ID
|
||||
*/
|
||||
async getById(id) {
|
||||
try {
|
||||
const response = await this.apiClient.get(`/content-sources/${id}`);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
throw new Error(error.response?.data?.message || 'Erreur lors de la récupération de la source');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Crée une nouvelle source de contenu
|
||||
*/
|
||||
async create(contentSource) {
|
||||
try {
|
||||
const response = await this.apiClient.post('/content-sources', contentSource);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
throw new Error(error.response?.data?.message || 'Erreur lors de la création de la source');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Met à jour une source de contenu
|
||||
*/
|
||||
async update(id, contentSource) {
|
||||
try {
|
||||
const response = await this.apiClient.put(`/content-sources/${id}`, contentSource);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
throw new Error(error.response?.data?.message || 'Erreur lors de la mise à jour de la source');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Exporte toutes les sources de contenu
|
||||
*/
|
||||
async export() {
|
||||
try {
|
||||
const response = await this.apiClient.get('/content-sources/export');
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
throw new Error(error.response?.data?.message || 'Erreur lors de l\'export des sources');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Importe des sources de contenu
|
||||
*/
|
||||
async import(contentSources) {
|
||||
try {
|
||||
const response = await this.apiClient.post('/content-sources/import', {
|
||||
contentSources
|
||||
});
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
throw new Error(error.response?.data?.message || 'Erreur lors de l\'import des sources');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user