87 lines
2.0 KiB
TypeScript
87 lines
2.0 KiB
TypeScript
import axios from 'axios';
|
|
|
|
import { type IExamAttempt } from '@/shared/model/exam-attempt.model';
|
|
import buildPaginationQueryOpts from '@/shared/sort/sorts';
|
|
|
|
const baseApiUrl = 'api/exam-attempts';
|
|
|
|
export default class ExamAttemptService {
|
|
find(id: number): Promise<IExamAttempt> {
|
|
return new Promise<IExamAttempt>((resolve, reject) => {
|
|
axios
|
|
.get(`${baseApiUrl}/${id}`)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
retrieve(paginationQuery?: any): Promise<any> {
|
|
return new Promise<any>((resolve, reject) => {
|
|
axios
|
|
.get(`${baseApiUrl}?${buildPaginationQueryOpts(paginationQuery)}`)
|
|
.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: IExamAttempt): Promise<IExamAttempt> {
|
|
return new Promise<IExamAttempt>((resolve, reject) => {
|
|
axios
|
|
.post(baseApiUrl, entity)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
update(entity: IExamAttempt): Promise<IExamAttempt> {
|
|
return new Promise<IExamAttempt>((resolve, reject) => {
|
|
axios
|
|
.put(`${baseApiUrl}/${entity.id}`, entity)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
partialUpdate(entity: IExamAttempt): Promise<IExamAttempt> {
|
|
return new Promise<IExamAttempt>((resolve, reject) => {
|
|
axios
|
|
.patch(`${baseApiUrl}/${entity.id}`, entity)
|
|
.then(res => {
|
|
resolve(res.data);
|
|
})
|
|
.catch(err => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
}
|