Address list query #122

Open
wbuezas wants to merge 3 commits from wbuezas/hedera-web-mindshore:feature/address-list-query into beta
1 changed files with 31 additions and 8 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,16 @@ 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 api = inject('api');
const jApi = inject('jApi'); const jApi = inject('jApi');
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 +43,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, isActive: true },
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) {
Review

Este cacho sigue siendo necesario?

Este cacho sigue siendo necesario?
console.error('Error getting active addresses:', error); console.error('Error getting active addresses:', error);
} }
@ -86,8 +100,17 @@ const removeAddress = async id => {
onMounted(async () => { onMounted(async () => {
getDefaultAddress(); getDefaultAddress();
getActiveAddresses();
}); });
watch(
Review

Porque hacemos el Watch si siempre va a ser el mismo?

Porque hacemos el Watch si siempre va a ser el mismo?
() => userStore?.user?.id,
async userId => {
if (userId) {
getActiveAddresses();
}
},
{ immediate: true }
);
</script> </script>
<template> <template>