0
1
Fork 0

Refactor address list query

This commit is contained in:
William Buezas 2025-02-27 16:13:37 -03:00
parent 98bbc97c88
commit 1f39c5ef5d
1 changed files with 31 additions and 9 deletions

View File

@ -1,6 +1,6 @@
<script setup> <script setup>
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { ref, onMounted, inject } from 'vue'; import { ref, onMounted, inject, watch } from 'vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import CardList from 'src/components/ui/CardList.vue'; import CardList from 'src/components/ui/CardList.vue';
@ -10,13 +10,15 @@ import useNotify from 'src/composables/useNotify.js';
import { useVnConfirm } from 'src/composables/useVnConfirm.js'; import { useVnConfirm } from 'src/composables/useVnConfirm.js';
import { useAppStore } from 'stores/app'; import { useAppStore } from 'stores/app';
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { useUserStore } from 'stores/user';
const router = useRouter(); const router = useRouter();
const jApi = inject('jApi'); const api = inject('api');
const { notify } = useNotify(); const { notify } = useNotify();
const { t } = useI18n(); const { t } = useI18n();
const { openConfirmationModal } = useVnConfirm(); const { openConfirmationModal } = useVnConfirm();
const appStore = useAppStore(); const appStore = useAppStore();
const userStore = useUserStore();
const { isHeaderMounted } = storeToRefs(appStore); const { isHeaderMounted } = storeToRefs(appStore);
const addresses = ref([]); const addresses = ref([]);
@ -40,12 +42,23 @@ const getDefaultAddress = async () => {
const getActiveAddresses = async () => { const getActiveAddresses = async () => {
try { try {
addresses.value = await jApi.query( const filter = {
`SELECT a.id, a.nickname, p.name province, a.postalCode, a.city, a.street, a.isActive where: { clientFk: userStore.user.id },
FROM myAddress a fields: [
LEFT JOIN vn.province p ON p.id = a.provinceFk 'id',
WHERE a.isActive` 'nickname',
); 'postalCode',
'city',
'street',
'isActive'
]
};
const { data } = await api.get('Addresses', {
params: {
filter: JSON.stringify(filter)
}
});
addresses.value = data;
} catch (error) { } catch (error) {
console.error('Error getting active addresses:', error); console.error('Error getting active addresses:', error);
} }
@ -86,8 +99,17 @@ const removeAddress = async id => {
onMounted(async () => { onMounted(async () => {
getDefaultAddress(); getDefaultAddress();
getActiveAddresses();
}); });
watch(
() => userStore?.user?.id,
async userId => {
if (userId) {
getActiveAddresses();
}
},
{ immediate: true }
);
</script> </script>
<template> <template>