diff --git a/lifetracker-vue/package-lock.json b/lifetracker-vue/package-lock.json index 7a09351..3cb1de3 100644 --- a/lifetracker-vue/package-lock.json +++ b/lifetracker-vue/package-lock.json @@ -463,9 +463,9 @@ } }, "node_modules/@volar/vue-language-core": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.6.3.tgz", - "integrity": "sha512-e9OTDCPa8Wuh0ORhD4z++qTIcrsrqcI9waspr93YcQCq6j+Q+JTFuy7HBSQgyezSAsP6x1WWokKVk4fWWDJQOw==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.6.4.tgz", + "integrity": "sha512-1o+cAtN2DIDNAX/HS8rkjZc8wTMTK+zCab/qtYbvEVlmokhZiDrQeoD9/l0Ug7YCNg+mVuMNHKNBY7pX8U2/Jw==", "dev": true, "dependencies": { "@volar/language-core": "1.4.1", @@ -594,13 +594,13 @@ } }, "node_modules/@volar/vue-typescript": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.6.3.tgz", - "integrity": "sha512-Dz29Qym33P1MSZDTZJ6PPLN1TLQfkX+g2pRnHqLCsFdSUu4yWYnElBURCn5WJkekxV/v+k2T43aur2RCSY3Ovg==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.6.4.tgz", + "integrity": "sha512-qKwgP0KVQR/aaH/SN3AP7RB8NnXPWDn3tjyXP6IT6etxkDeZLBLsXWUD9KMak/RvV1DgbXDuz4F9yuZlbt29rA==", "dev": true, "dependencies": { "@volar/typescript": "1.4.1", - "@volar/vue-language-core": "1.6.3" + "@volar/vue-language-core": "1.6.4" }, "peerDependencies": { "typescript": "*" @@ -788,19 +788,6 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1135,16 +1122,16 @@ } }, "node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/fsevents": { @@ -1611,6 +1598,19 @@ "form-data": "^2.3.2" } }, + "node_modules/isomorphic-form-data/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -1730,9 +1730,9 @@ "dev": true }, "node_modules/node": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/node/-/node-20.0.0.tgz", - "integrity": "sha512-4R1vw5hKUjQw3x65x9g/ape/XlY/ZFHaQWB+jQLFJIJkVKJPDSY4oj3O6qgXOvv2wwgEpK9J2SvJUjuL6zu0uA==", + "version": "20.1.0", + "resolved": "https://registry.npmjs.org/node/-/node-20.1.0.tgz", + "integrity": "sha512-KEdvvfuL5jfQTFN6Evul7qqI1zYQ/eljdsIHkQOS+FW86l7ZTNfOEru/OzprVP1X0jLfRDPDz0wvucCOWOotQg==", "hasInstallScript": true, "dependencies": { "node-bin-setup": "^1.0.0" @@ -2060,9 +2060,9 @@ } }, "node_modules/rollup": { - "version": "3.21.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.3.tgz", - "integrity": "sha512-VnPfEG51nIv2xPLnZaekkuN06q9ZbnyDcLkaBdJa/W7UddyhOfMP2yOPziYQfeY7k++fZM8FdQIummFN5y14kA==", + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.4.tgz", + "integrity": "sha512-N5LxpvDolOm9ueiCp4NfB80omMDqb45ShtsQw2+OT3f11uJ197dv703NZvznYHP6RWR85wfxanXurXKG3ux2GQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -2448,13 +2448,13 @@ } }, "node_modules/vue-tsc": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.6.3.tgz", - "integrity": "sha512-q7l27j0eSJgyGat0khetrvoeaAHieRZFnf8WAJyKvB3eF0AxmLqfs4ahwZhaojBJjZ/lAXZa+Xt8EX54KzQ34w==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.6.4.tgz", + "integrity": "sha512-8rg8S1AhRJ6/WriENQEhyqH5wsxSxuD5iaD+QnkZn2ArZ6evlhqfBAIcVN8mfSyCV9DeLkQXkOSv/MaeJiJPAQ==", "dev": true, "dependencies": { - "@volar/vue-language-core": "1.6.3", - "@volar/vue-typescript": "1.6.3", + "@volar/vue-language-core": "1.6.4", + "@volar/vue-typescript": "1.6.4", "semver": "^7.3.8" }, "bin": { @@ -2769,9 +2769,9 @@ } }, "@volar/vue-language-core": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.6.3.tgz", - "integrity": "sha512-e9OTDCPa8Wuh0ORhD4z++qTIcrsrqcI9waspr93YcQCq6j+Q+JTFuy7HBSQgyezSAsP6x1WWokKVk4fWWDJQOw==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.6.4.tgz", + "integrity": "sha512-1o+cAtN2DIDNAX/HS8rkjZc8wTMTK+zCab/qtYbvEVlmokhZiDrQeoD9/l0Ug7YCNg+mVuMNHKNBY7pX8U2/Jw==", "dev": true, "requires": { "@volar/language-core": "1.4.1", @@ -2893,13 +2893,13 @@ } }, "@volar/vue-typescript": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.6.3.tgz", - "integrity": "sha512-Dz29Qym33P1MSZDTZJ6PPLN1TLQfkX+g2pRnHqLCsFdSUu4yWYnElBURCn5WJkekxV/v+k2T43aur2RCSY3Ovg==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.6.4.tgz", + "integrity": "sha512-qKwgP0KVQR/aaH/SN3AP7RB8NnXPWDn3tjyXP6IT6etxkDeZLBLsXWUD9KMak/RvV1DgbXDuz4F9yuZlbt29rA==", "dev": true, "requires": { "@volar/typescript": "1.4.1", - "@volar/vue-language-core": "1.6.3" + "@volar/vue-language-core": "1.6.4" } }, "@vue/compiler-core": { @@ -3060,18 +3060,6 @@ "follow-redirects": "^1.15.0", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } } }, "balanced-match": { @@ -3340,12 +3328,12 @@ } }, "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, @@ -3670,6 +3658,18 @@ "integrity": "sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg==", "requires": { "form-data": "^2.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + } } }, "json-parse-better-errors": { @@ -3758,9 +3758,9 @@ "dev": true }, "node": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/node/-/node-20.0.0.tgz", - "integrity": "sha512-4R1vw5hKUjQw3x65x9g/ape/XlY/ZFHaQWB+jQLFJIJkVKJPDSY4oj3O6qgXOvv2wwgEpK9J2SvJUjuL6zu0uA==", + "version": "20.1.0", + "resolved": "https://registry.npmjs.org/node/-/node-20.1.0.tgz", + "integrity": "sha512-KEdvvfuL5jfQTFN6Evul7qqI1zYQ/eljdsIHkQOS+FW86l7ZTNfOEru/OzprVP1X0jLfRDPDz0wvucCOWOotQg==", "requires": { "node-bin-setup": "^1.0.0" } @@ -3964,9 +3964,9 @@ } }, "rollup": { - "version": "3.21.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.3.tgz", - "integrity": "sha512-VnPfEG51nIv2xPLnZaekkuN06q9ZbnyDcLkaBdJa/W7UddyhOfMP2yOPziYQfeY7k++fZM8FdQIummFN5y14kA==", + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.4.tgz", + "integrity": "sha512-N5LxpvDolOm9ueiCp4NfB80omMDqb45ShtsQw2+OT3f11uJ197dv703NZvznYHP6RWR85wfxanXurXKG3ux2GQ==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -4232,13 +4232,13 @@ } }, "vue-tsc": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.6.3.tgz", - "integrity": "sha512-q7l27j0eSJgyGat0khetrvoeaAHieRZFnf8WAJyKvB3eF0AxmLqfs4ahwZhaojBJjZ/lAXZa+Xt8EX54KzQ34w==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.6.4.tgz", + "integrity": "sha512-8rg8S1AhRJ6/WriENQEhyqH5wsxSxuD5iaD+QnkZn2ArZ6evlhqfBAIcVN8mfSyCV9DeLkQXkOSv/MaeJiJPAQ==", "dev": true, "requires": { - "@volar/vue-language-core": "1.6.3", - "@volar/vue-typescript": "1.6.3", + "@volar/vue-language-core": "1.6.4", + "@volar/vue-typescript": "1.6.4", "semver": "^7.3.8" }, "dependencies": { diff --git a/lifetracker-vue/src/components/AuthNav.vue b/lifetracker-vue/src/components/AuthNav.vue index a3b1660..12c8695 100644 --- a/lifetracker-vue/src/components/AuthNav.vue +++ b/lifetracker-vue/src/components/AuthNav.vue @@ -1,13 +1,15 @@ \ No newline at end of file diff --git a/lifetracker-vue/src/stores/session.ts b/lifetracker-vue/src/stores/session.ts index c7e157c..5f0226c 100644 --- a/lifetracker-vue/src/stores/session.ts +++ b/lifetracker-vue/src/stores/session.ts @@ -3,6 +3,12 @@ import axios from 'axios'; import { defineStore } from 'pinia'; import { Client, Account, ID } from 'appwrite'; +const appwriteclient = new Client() + .setEndpoint('http://ryanpandya.com:8080/v1') + .setProject('lifetracker'); + +const account = new Account(appwriteclient); + export const useSessionStore = defineStore({ id: 'sessionState', state: () => ({ @@ -12,12 +18,17 @@ export const useSessionStore = defineStore({ isConnected: (state) => state.session['userId'] == 'ryan', }, actions: { + logout() { + const promise = this.account.deleteSession(this.session); + var self = this; + promise.then(function (response) { + self.userId = null; self.email = null; self.session = false; + console.log(response); // Success + }, function (error) { + console.log(error); // Failure + }); + }, connect() { - const appwriteclient = new Client() - .setEndpoint('http://ryanpandya.com:8080/v1') - .setProject('lifetracker'); - - const account = new Account(appwriteclient); const promise = account.getSession('current'); var session: ISession = { email: '', @@ -26,26 +37,38 @@ export const useSessionStore = defineStore({ }; promise.then( function (response) { - response.providerUid; - response.userId; - response.$id; + session.email = response.providerUid; + session.userId = response.userId; + session.id = response.$id; + console.log('Connected to existing session'); + session = session; }, function (error) { - self.email = null; - self.userId = null; - self.password = null; - self.session = false; + session.email = null; + session.userId = null; + session.id = null; + console.log('No existing session; starting fresh.'); + return session; } ); }, - login() { - const session: ISession = { - id: 'moot', - userId: 'ryan', - email: 'ryan@ryanpandya.com', + login(email : string, password : string) { + console.log(this.session); + const promise = account.createEmailSession(email, password); + var session: ISession = { + email: '', + userId: '', + id: '', }; - this.session = session; - console.log('Logged in'); + promise.then(function (response) { + session.email = response.providerUid; + session.userId = response.userId; + session.id = response.$id; + console.log('Logged in'); + return session; + }, function (error) { + console.log('Error'); + }); }, }, }); diff --git a/lifetracker-vue/src/views/DatabaseView.vue b/lifetracker-vue/src/views/DatabaseView.vue index 137dbda..76b98d9 100644 --- a/lifetracker-vue/src/views/DatabaseView.vue +++ b/lifetracker-vue/src/views/DatabaseView.vue @@ -1,7 +1,13 @@ + +