purityselect_admin/resources/js/api.js
2024-10-25 19:58:19 +05:00

59 lines
1.7 KiB
JavaScript

import axios from 'axios';
import qs from 'qs';
export default {
async get(url, headers={}){
headers.Authorization= `Bearer ${localStorage.getItem('admin_access_token')}`;
const res = await axios.get(url, { headers:headers });
return res.data;
},
async post(url, data, headers={}){
headers.Authorization= `Bearer ${localStorage.getItem('admin_access_token')}`;
const res = await axios.post(url, data, { headers:headers });
return res.data;
},
async getDataTableRecord(url, payload, columns) {
const defaultQuery = {
draw:0,
columns:[],
order:[],
start:(payload.page - 1) * payload.itemsPerPage,
length:payload.itemsPerPage,
search:{
value: payload.search,
},
...payload.filters,
}
const i=0;
for( let column of columns){
defaultQuery.columns.push(
{
data:column.key,
searchable:column.searchable == undefined ? true:column.searchable,
orderable:column.orderable == undefined ? true:column.orderable,
name:'',
}
)
}
for(let sort of payload.sortBy){
const index= columns.findIndex(column=>column.key==sort.key)
defaultQuery.order.push({
column:index,
dir:sort.order,
name:'',
})
}
const data = await this.post(url, qs.stringify(defaultQuery));
return {
items:data.data,
total:data.recordsTotal,
}
},
}