diff --git a/keepr.client/src/AppState.js b/keepr.client/src/AppState.js index 2d2d016..8a685cb 100644 --- a/keepr.client/src/AppState.js +++ b/keepr.client/src/AppState.js @@ -10,5 +10,6 @@ export const AppState = reactive({ profileKeeps: [], profileVaults: [], vaultKeeps: [], - activeVault: {} + activeVault: {}, + myVaults: [] }) diff --git a/keepr.client/src/components/KeepModalButtons.vue b/keepr.client/src/components/KeepModalButtons.vue index 5b4937b..f42da75 100644 --- a/keepr.client/src/components/KeepModalButtons.vue +++ b/keepr.client/src/components/KeepModalButtons.vue @@ -7,7 +7,7 @@ @@ -27,11 +27,14 @@ - - diff --git a/keepr.client/src/pages/ProfilePage.vue b/keepr.client/src/pages/ProfilePage.vue index b9b3dd6..6d6dafd 100644 --- a/keepr.client/src/pages/ProfilePage.vue +++ b/keepr.client/src/pages/ProfilePage.vue @@ -15,7 +15,7 @@

Vaults - +

@@ -29,7 +29,7 @@

Keeps - +

@@ -75,6 +75,7 @@ export default { return { // no curly gorls profile: computed(() => AppState.activeProfile), + account: computed(() => AppState.account), keeps: computed(() => AppState.profileKeeps), vaults: computed(() => AppState.profileVaults), activeKeep: computed(() => AppState.activeKeep), diff --git a/keepr.client/src/pages/VaultPage.vue b/keepr.client/src/pages/VaultPage.vue index 41c3ebe..b57194b 100644 --- a/keepr.client/src/pages/VaultPage.vue +++ b/keepr.client/src/pages/VaultPage.vue @@ -5,7 +5,7 @@

{{ vault.name }}

-
Keeps: vaultKeep stoufe
+
Keeps: {{ keeps.length }}
@@ -37,9 +37,11 @@ import { vaultsService } from '../services/VaultsService' import KeepTile from '../components/KeepTile.vue'; import KeepModal from '../components/KeepModal.vue'; import KeepModalButtons from '../components/KeepModalButtons.vue'; +import { vaultKeepsService } from '../services/VaultKeepsService'; export default { setup() { const route = useRoute(); + const router = useRouter() onMounted(async () => { await vaultsService.getVault(route.params.id); await vaultsService.getVaultKeeps(route.params.id); @@ -53,6 +55,11 @@ export default { viewKeep(keep) { AppState.activeKeep = keep Modal.getOrCreateInstance(document.getElementById('keepModal')).show() + }, + + async deleteVault() { + await vaultsService.delete(AppState.activeVault.id, AppState.vaultKeeps) + router.push({ name: "Profile", params: { id: AppState.account.id } }) } }; }, diff --git a/keepr.client/src/router.js b/keepr.client/src/router.js index d11cc40..6d5ab28 100644 --- a/keepr.client/src/router.js +++ b/keepr.client/src/router.js @@ -11,12 +11,6 @@ const routes = [ name: 'Home', component: loadPage('HomePage') }, - { - path: '/account', - name: 'Account', - component: loadPage('AccountPage'), - beforeEnter: authGuard - }, { path: '/profile/:id', name: 'Profile', diff --git a/keepr.client/src/services/AuthService.js b/keepr.client/src/services/AuthService.js index 3bb2ef2..1a9282a 100644 --- a/keepr.client/src/services/AuthService.js +++ b/keepr.client/src/services/AuthService.js @@ -5,6 +5,7 @@ import { router } from '../router' import { accountService } from './AccountService' import { api } from './AxiosService' import { socketService } from './SocketService' +import { profilesService } from './ProfilesService' export const AuthService = initialize({ domain, @@ -27,6 +28,8 @@ AuthService.on(AuthService.AUTH_EVENTS.AUTHENTICATED, async function() { await accountService.getAccount() socketService.authenticate(AuthService.bearer) // NOTE if there is something you want to do once the user is authenticated, place that here + await profilesService.getMyVaults(AppState.account.id) + }) async function refreshAuthToken(config) { diff --git a/keepr.client/src/services/ProfilesService.js b/keepr.client/src/services/ProfilesService.js index 44e2286..719723a 100644 --- a/keepr.client/src/services/ProfilesService.js +++ b/keepr.client/src/services/ProfilesService.js @@ -30,6 +30,15 @@ class ProfilesService { logger.error(error) } } + + async getMyVaults(profileId) { + try { + const res = await api.get('api/profiles/' + profileId + '/vaults') + AppState.myVaults = res.data + } catch (error) { + logger.error(error) + } + } } export const profilesService = new ProfilesService() \ No newline at end of file diff --git a/keepr.client/src/services/VaultKeepsService.js b/keepr.client/src/services/VaultKeepsService.js new file mode 100644 index 0000000..adfb8be --- /dev/null +++ b/keepr.client/src/services/VaultKeepsService.js @@ -0,0 +1,34 @@ +import { AppState } from '../AppState' +import { logger } from '../utils/Logger' +import { api } from './AxiosService' +import Pop from '../utils/Pop' +import { vaultsService } from '../services/VaultsService' + +class VaultKeepsService { + async create(keepId, vaultId) { + try { + let newVaultKeep = { + vaultId: vaultId, + keepId: keepId + } + const res = await api.post('api/vaultkeeps', newVaultKeep) + AppState.vaultKeeps.push(res.data) + } catch (error) { + logger.error(error) + Pop.error(error) + } + } + + async delete(vaultKeepId) { + try { + logger.log(vaultKeepId) + await api.delete('api/vaultkeeps/' + vaultKeepId) + await vaultsService.getVaultKeeps(AppState.activeVault.id) + } catch (error) { + logger.error(error) + Pop.error(error) + } + } +} + +export const vaultKeepsService = new VaultKeepsService() \ No newline at end of file diff --git a/keepr.client/src/services/VaultsService.js b/keepr.client/src/services/VaultsService.js index 6ae15d5..034e90c 100644 --- a/keepr.client/src/services/VaultsService.js +++ b/keepr.client/src/services/VaultsService.js @@ -1,6 +1,9 @@ import { AppState } from '../AppState' import { logger } from '../utils/Logger' import { api } from './AxiosService' +import Pop from '../utils/Pop' +import { profilesService } from './ProfilesService' +import { vaultKeepsService } from './VaultKeepsService' class VaultsService { async getVault(vaultId) { @@ -9,6 +12,7 @@ class VaultsService { AppState.activeVault = res.data } catch (error) { logger.error(error) + Pop.error(error) } } @@ -18,6 +22,7 @@ class VaultsService { AppState.vaultKeeps = res.data } catch (error) { logger.error(error) + Pop.error(error) } } @@ -25,9 +30,27 @@ class VaultsService { try { const res = await api.post('api/vaults', vaultData) // logger.log(res.data) - AppState.profileVaults.push(res.data) + // AppState.myVaults.push(res.data) + profilesService.getVaults(AppState.account.id) + AppState.myVaults = AppState.profileVaults } catch (error) { logger.error(error) + Pop.error(error) + } + } + + async delete(vaultId, vaultKeeps) { + try { + // vaultKeeps will collect in db... if this isn't here + // for (let vk = 0; vk < vaultKeeps.length; vk++) { + // await vaultKeepsService.delete(vaultKeeps[vk].id) + // } + await api.delete('api/vaults/' + vaultId) + profilesService.getVaults(AppState.account.id) + AppState.myVaults = AppState.profileVaults + } catch (error) { + logger.error(error) + Pop.error(error) } } }