2022-05-09 17:18:49 +02:00
|
|
|
import apiClient from './clients/api-client';
|
|
|
|
import { AxiosResponse } from 'axios';
|
|
|
|
import { Training, TrainingIndexFilter } from '../models/training';
|
2022-06-28 14:59:51 +02:00
|
|
|
import ApiLib from '../lib/api';
|
2022-05-09 17:18:49 +02:00
|
|
|
|
|
|
|
export default class TrainingAPI {
|
|
|
|
static async index (filters?: TrainingIndexFilter): Promise<Array<Training>> {
|
2022-06-28 14:59:51 +02:00
|
|
|
const res: AxiosResponse<Array<Training>> = await apiClient.get(`/api/trainings${ApiLib.filtersToQuery(filters)}`);
|
2022-05-09 17:18:49 +02:00
|
|
|
return res?.data;
|
|
|
|
}
|
2022-11-08 10:45:39 +01:00
|
|
|
|
|
|
|
static async create (training: Training): Promise<Training> {
|
|
|
|
const data = ApiLib.serializeAttachments(training, 'training', ['training_image_attributes']);
|
|
|
|
const res: AxiosResponse<Training> = await apiClient.post('/api/trainings', data, {
|
|
|
|
headers: {
|
|
|
|
'Content-Type': 'multipart/form-data'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return res?.data;
|
|
|
|
}
|
|
|
|
|
|
|
|
static async update (training: Training): Promise<Training> {
|
|
|
|
const data = ApiLib.serializeAttachments(training, 'training', ['training_image_attributes']);
|
|
|
|
const res: AxiosResponse<Training> = await apiClient.put(`/api/trainings/${training.id}`, data, {
|
|
|
|
headers: {
|
|
|
|
'Content-Type': 'multipart/form-data'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return res?.data;
|
|
|
|
}
|
2022-05-09 17:18:49 +02:00
|
|
|
}
|