Files
WebETA/src/stores/loads.js
Alexandro Uc Santos e6eae48c73 add: post load
2023-12-16 19:30:12 -06:00

132 lines
3.5 KiB
JavaScript

import { defineStore } from "pinia";
import { ref } from "vue";
import api from "../lib/axios";
export const useLoadsStore = defineStore('load', () => {
const companyid = localStorage.getItem('id');
const currentLoad = ref(null);
const loads = ref([])
const proposalsOfLoads = ref([]);
const openModalEdit = ref(false);
const openAttachmentsModal = ref(false);
const openProposalsModal = ref(false);
const getCompanyLoads = async(filterQuery) => {
let filterArr = Object.values(filterQuery);
let cleanfilterArr = filterArr.filter(n=>n);
var filterStr = "";
if(cleanfilterArr.length >0){
filterStr = cleanfilterArr.join("&");
}
// console.log(filterStr);
try {
const endpoint = `/loads?company=${companyid}&${filterStr}`;
const {data} = await api.get(endpoint);
loads.value = data.data;
} catch (error) {
loads.value = [];
console.log(error);
}
}
const getProposalsOfLoads = async(filterQuery) => {
try {
const endpoint = `/proposals/?load=${filterQuery}`;
const {data} = await api.get(endpoint);
// console.log(data);
proposalsOfLoads.value = data.data;
} catch (error) {
proposalsOfLoads.value = [];
console.log(error);
}
}
const saveLoad = async(load) => {
try {
const endpoint = `/loads/`;
const {data} = await api.post(endpoint, load);
return data;
} catch (error) {
console.log(error);
return null;
}
}
const updateProposal = async(id, proposal) => {
try {
const endpoint = `/proposals/${id}`;
const {data} = await api.patch(endpoint, proposal);
// console.log(data);
return data;
} catch (error) {
console.log(error);
return null;
}
}
const deleteProposal = async(id) => {
try {
const endpoint = `/proposals/${id}`;
const {data} = await api.delete(endpoint);
// console.log(data);
return data;
} catch (error) {
console.log(error);
return null;
}
}
const updateLoad = async(loadId, load) => {
try {
const endpoint = `/loads/${loadId}`;
const {data} = await api.patch(endpoint, load);
// console.log(data);
return data;
} catch (error) {
console.log(error);
return null;
}
}
const deleteLoad = async(loadId) => {
try {
const endpoint = `/loads/${loadId}`;
console.log(endpoint);
const {data} = await api.delete(endpoint);
return data;
} catch (error) {
console.log(error);
return null;
}
}
const getLoad = async(filterQuery) => {
try {
const endpoint = `/loads/${filterQuery}`;
const {data} = await api.get(endpoint);
return data;
} catch (error) {
console.log(error);
return [];
}
}
return {
openModalEdit,
openProposalsModal,
openAttachmentsModal,
getProposalsOfLoads,
getCompanyLoads,
deleteLoad,
getLoad,
saveLoad,
updateLoad,
updateProposal,
deleteProposal,
loads,
currentLoad,
proposalsOfLoads,
}
});