86 lines
1.8 KiB
TypeScript
86 lines
1.8 KiB
TypeScript
import axios from 'axios';
|
|
|
|
import { type IChoice } from '@/shared/model/choice.model';
|
|
|
|
const baseApiUrl = 'api/choices';
|
|
|
|
export default class ChoiceService {
|
|
find(id: number): Promise<IChoice> {
|
|
return new Promise<IChoice>((resolve, reject) => {
|
|
axios
|
|
.get(`${baseApiUrl}/${id}`)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
retrieve(): Promise<any> {
|
|
return new Promise<any>((resolve, reject) => {
|
|
axios
|
|
.get(baseApiUrl)
|
|
.then(res => {
|
|
resolve(res);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
delete(id: number): Promise<any> {
|
|
return new Promise<any>((resolve, reject) => {
|
|
axios
|
|
.delete(`${baseApiUrl}/${id}`)
|
|
.then(res => {
|
|
resolve(res);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
create(entity: IChoice): Promise<IChoice> {
|
|
return new Promise<IChoice>((resolve, reject) => {
|
|
axios
|
|
.post(baseApiUrl, entity)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
update(entity: IChoice): Promise<IChoice> {
|
|
return new Promise<IChoice>((resolve, reject) => {
|
|
axios
|
|
.put(`${baseApiUrl}/${entity.id}`, entity)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
partialUpdate(entity: IChoice): Promise<IChoice> {
|
|
return new Promise<IChoice>((resolve, reject) => {
|
|
axios
|
|
.patch(`${baseApiUrl}/${entity.id}`, entity)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
}
|