Files
docker-rconfig/resources/js/composables/AllModelResultsFactory.js
2024-10-19 18:23:55 +00:00

44 lines
1.3 KiB
JavaScript
Executable File

import { ref, reactive, inject } from 'vue';
import axios from 'axios';
// https://laraveldaily.com/laravel-8-vue-3-crud-composition-api/
// https://dev.to/razi91/writing-a-composable-function-to-fetch-data-from-rest-api-in-vue-js-4957?utm_source=dormosheio&utm_campaign=dormosheio
export default function useGetAllModeResults(url) {
const model = reactive({});
const results = reactive({});
const isLoading = ref(true);
const modelUrl = ref(url);
const createNotification = inject('create-notification');
const errors = ref('');
let currentPage = 1;
let perPage = 10000;
let filter = '';
let sortCol = '';
let sortOrd = '';
const params = '?page=' + currentPage + '&perPage=' + perPage + '&filter=' + filter + '&sortCol=' + sortCol + '&sortOrd=' + sortOrd;
axios
.get('/api/' + modelUrl.value + '/' + params, {})
.then((response) => {
// handle success
Object.assign(results, response.data.data); // just return the data - no pagination
isLoading.value = false;
})
.catch((error) => {
// handle error
createNotification({
type: 'danger',
title: 'Error',
message: error.response.data.message
});
});
return {
results,
isLoading
};
}