No real progress, but syncing from work

This commit is contained in:
Ryan Pandya 2023-05-04 18:46:35 -07:00
parent 8bc042aa19
commit 8bbe9c9fb4
6 changed files with 129 additions and 174 deletions

View File

@ -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": {

View File

@ -1,13 +1,15 @@
<script setup>
import { useSessionStore } from "../stores/session";
const storeSession = useSessionStore();
storeSession.connect();
</script>
<template>
<div v-if="!storeSession.isConnected">
Not connected.
<button @click="storeSession.login">
Connect!
</button>
</div>
<div v-if="storeSession.isConnected">
Connected as {{ storeSession.session.userId }}.
</div>
</template>

View File

@ -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;
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');
});
},
},
});

View File

@ -1,7 +1,13 @@
<script setup>
import { useSessionStore } from "../stores/session";
const storeSession = useSessionStore();
</script>
<script>
var email; var userId; var password; var session;
export default {
mounted(){},
mounted(){
},
data(){
return {
userId: userId,
@ -9,53 +15,29 @@ export default {
password: password,
error: null,
session: session,
account: account
}
},
methods: {
connect() {
const promise = this.account.createEmailSession(this.email, this.password);
var self = this;
promise.then(function (response) {
self.session = response;
self.userId = response.userId;
self.error = false;
}, function (error) {
self.session = false;
self.error = error;
});
},
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
});
console.log("Legacy method called.");
}
}
}
</script>
<template>
<div v-if="session == null">
<div v-if="storeSession.session == null">
Loading...
</div>
<div v-if="session==false" id="form">
<div v-if="storeSession.session == false" id="form">
<h2>Not connected yet.</h2>
<div id="login">
<input name="email" type="text" v-model="email" placeholder="email" />
<input name="password" type="password" v-model="password" placeholder="password"/>
<button @click="connect">Connect to database</button>
<button @click="storeSession.login(email, password)">Connect to database</button>
<h3 class="error" v-if="error">{{ error }}</h3>
</div>
</div>
<div v-if="session">
<div v-if="storeSession.session.id">
<h2>Welcome back, {{ userId }}!</h2>
<div class="flex">
<button @click="logout">Log Out</button>

47
package-lock.json generated
View File

@ -1,47 +0,0 @@
{
"name": "ltx",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"node": "^20.0.0"
}
},
"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==",
"hasInstallScript": true,
"dependencies": {
"node-bin-setup": "^1.0.0"
},
"bin": {
"node": "bin/node"
},
"engines": {
"npm": ">=5.0.0"
}
},
"node_modules/node-bin-setup": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.1.3.tgz",
"integrity": "sha512-opgw9iSCAzT2+6wJOETCpeRYAQxSopqQ2z+N6BXwIMsQQ7Zj5M8MaafQY8JMlolRR6R1UXg2WmhKp0p9lSOivg=="
}
},
"dependencies": {
"node": {
"version": "20.0.0",
"resolved": "https://registry.npmjs.org/node/-/node-20.0.0.tgz",
"integrity": "sha512-4R1vw5hKUjQw3x65x9g/ape/XlY/ZFHaQWB+jQLFJIJkVKJPDSY4oj3O6qgXOvv2wwgEpK9J2SvJUjuL6zu0uA==",
"requires": {
"node-bin-setup": "^1.0.0"
}
},
"node-bin-setup": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.1.3.tgz",
"integrity": "sha512-opgw9iSCAzT2+6wJOETCpeRYAQxSopqQ2z+N6BXwIMsQQ7Zj5M8MaafQY8JMlolRR6R1UXg2WmhKp0p9lSOivg=="
}
}
}

View File

@ -1,5 +0,0 @@
{
"dependencies": {
"node": "^20.0.0"
}
}