56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
/* global axios */
|
|
import ApiClient from './ApiClient';
|
|
|
|
export class LeavesAPI extends ApiClient {
|
|
constructor() {
|
|
super('leaves', { accountScoped: true });
|
|
}
|
|
|
|
// GET /api/v1/accounts/:accountId/leaves
|
|
get(params = {}) {
|
|
return axios.get(this.url, { params });
|
|
}
|
|
|
|
// GET /api/v1/accounts/:accountId/leaves/:id
|
|
show(id) {
|
|
return axios.get(`${this.url}/${id}`);
|
|
}
|
|
|
|
// POST /api/v1/accounts/:accountId/leaves
|
|
create(data) {
|
|
return axios.post(this.url, { leave: data.leave, user_id: data.user_id });
|
|
}
|
|
|
|
// PUT /api/v1/accounts/:accountId/leaves/:id
|
|
update(id, data) {
|
|
return axios.put(`${this.url}/${id}`, { leave: data });
|
|
}
|
|
|
|
// DELETE /api/v1/accounts/:accountId/leaves/:id
|
|
delete(id) {
|
|
return axios.delete(`${this.url}/${id}`);
|
|
}
|
|
|
|
// POST /api/v1/accounts/:accountId/leaves/:id/approve
|
|
approve(id, data = {}) {
|
|
return axios.post(`${this.url}/${id}/approve`, data);
|
|
}
|
|
|
|
// POST /api/v1/accounts/:accountId/leaves/:id/reject
|
|
reject(id, data = {}) {
|
|
return axios.post(`${this.url}/${id}/reject`, data);
|
|
}
|
|
|
|
// GET /api/v1/accounts/:accountId/leaves/my_leaves
|
|
getMyLeaves(params = {}) {
|
|
return axios.get(`${this.url}/my_leaves`, { params });
|
|
}
|
|
|
|
// GET /api/v1/accounts/:accountId/leaves/pending_approvals
|
|
getPendingApprovals(params = {}) {
|
|
return axios.get(`${this.url}/pending_approvals`, { params });
|
|
}
|
|
}
|
|
|
|
export default new LeavesAPI();
|