From 47afcbb8ec1b686d4a4dfa9f64e805642791c1b2 Mon Sep 17 00:00:00 2001 From: juls0730 Date: Tue, 3 Jan 2023 15:11:36 -0600 Subject: [PATCH] stream day 2 --- App.vue | 30 +++++ components/Nav.vue | 116 ++++++++++++++++++ components/Sidebar.vue | 64 ++++++++++ components/Technology.vue | 20 --- nuxt.config.ts | 14 +++ package-lock.json | 90 ++++++++++++++ package.json | 2 + pages/channel/@me/[dmId].vue | 16 +++ pages/channel/@me/index.vue | 26 ++++ pages/channel/[id].vue | 9 +- pages/index.vue | 2 +- pages/login.vue | 4 + pages/signup.vue | 4 + prisma/schema.prisma | 22 ++-- .../[id].get.ts} | 17 ++- server/api/channel/create.post.ts | 55 +++++++++ server/api/channel/createDM.post.ts | 67 ++++++++++ server/api/getCurrentUser.get.ts | 21 ++++ server/api/signup.post.ts | 20 +++ server/middleware/auth.ts | 14 ++- stores/servers.ts | 15 +++ stores/user.ts | 10 ++ types/index.ts | 4 + 23 files changed, 605 insertions(+), 37 deletions(-) create mode 100644 App.vue create mode 100644 components/Nav.vue create mode 100644 components/Sidebar.vue delete mode 100644 components/Technology.vue create mode 100644 pages/channel/@me/[dmId].vue create mode 100644 pages/channel/@me/index.vue rename server/api/{getChannelById.get.ts => channel/[id].get.ts} (54%) create mode 100644 server/api/channel/create.post.ts create mode 100644 server/api/channel/createDM.post.ts create mode 100644 server/api/getCurrentUser.get.ts create mode 100644 stores/servers.ts create mode 100644 stores/user.ts create mode 100644 types/index.ts diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..7b53958 --- /dev/null +++ b/App.vue @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/components/Nav.vue b/components/Nav.vue new file mode 100644 index 0000000..3fc0418 --- /dev/null +++ b/components/Nav.vue @@ -0,0 +1,116 @@ + + + \ No newline at end of file diff --git a/components/Sidebar.vue b/components/Sidebar.vue new file mode 100644 index 0000000..5bb4c6f --- /dev/null +++ b/components/Sidebar.vue @@ -0,0 +1,64 @@ + + + \ No newline at end of file diff --git a/components/Technology.vue b/components/Technology.vue deleted file mode 100644 index b051f49..0000000 --- a/components/Technology.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/nuxt.config.ts b/nuxt.config.ts index 93f790a..33f7159 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -20,4 +20,18 @@ export default { autoprefixer: {}, }, }, + + modules: [ + [ + '@pinia/nuxt', + { + autoImports: [ + // automatically imports `defineStore` + 'defineStore', // import { defineStore } from 'pinia' + // automatically imports `defineStore` as `definePiniaStore` + ['defineStore', 'definePiniaStore'], // import { defineStore as definePiniaStore } from 'pinia' + ], + }, + ], + ], } diff --git a/package-lock.json b/package-lock.json index 252668d..e0a3d95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,11 @@ "packages": { "": { "dependencies": { + "@pinia/nuxt": "^0.4.6", "@prisma/client": "^4.8.0", "bcryptjs": "^2.4.3", "nuxt": "^3.0.0", + "pinia": "^2.0.28", "uuid": "^9.0.0" }, "devDependencies": { @@ -831,6 +833,18 @@ "vue": "^3.2.45" } }, + "node_modules/@pinia/nuxt": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@pinia/nuxt/-/nuxt-0.4.6.tgz", + "integrity": "sha512-HjrYEfLdFpmsjhicPJgL36jVhzHWukIQPFFHGTSF84Cplu+f2nY2XHKqe9ToHzE9rLee2RjLOwAzOnXa/I/u6A==", + "dependencies": { + "@nuxt/kit": "^3.0.0", + "pinia": ">=2.0.27" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + } + }, "node_modules/@prisma/client": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.8.0.tgz", @@ -5065,6 +5079,56 @@ "node": ">=0.10.0" } }, + "node_modules/pinia": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz", + "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==", + "dependencies": { + "@vue/devtools-api": "^6.4.5", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/pkg-types": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.1.tgz", @@ -8037,6 +8101,15 @@ "vue-bundle-renderer": "^1.0.0" } }, + "@pinia/nuxt": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@pinia/nuxt/-/nuxt-0.4.6.tgz", + "integrity": "sha512-HjrYEfLdFpmsjhicPJgL36jVhzHWukIQPFFHGTSF84Cplu+f2nY2XHKqe9ToHzE9rLee2RjLOwAzOnXa/I/u6A==", + "requires": { + "@nuxt/kit": "^3.0.0", + "pinia": ">=2.0.27" + } + }, "@prisma/client": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.8.0.tgz", @@ -11029,6 +11102,23 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" }, + "pinia": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz", + "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==", + "requires": { + "@vue/devtools-api": "^6.4.5", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, "pkg-types": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.1.tgz", diff --git a/package.json b/package.json index bb60701..639ec2f 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,11 @@ "prepare": "nuxi prepare" }, "dependencies": { + "@pinia/nuxt": "^0.4.6", "@prisma/client": "^4.8.0", "bcryptjs": "^2.4.3", "nuxt": "^3.0.0", + "pinia": "^2.0.28", "uuid": "^9.0.0" }, "devDependencies": { diff --git a/pages/channel/@me/[dmId].vue b/pages/channel/@me/[dmId].vue new file mode 100644 index 0000000..b801255 --- /dev/null +++ b/pages/channel/@me/[dmId].vue @@ -0,0 +1,16 @@ + + + \ No newline at end of file diff --git a/pages/channel/@me/index.vue b/pages/channel/@me/index.vue new file mode 100644 index 0000000..6a4ef68 --- /dev/null +++ b/pages/channel/@me/index.vue @@ -0,0 +1,26 @@ + + + \ No newline at end of file diff --git a/pages/channel/[id].vue b/pages/channel/[id].vue index ad30385..f1ba158 100644 --- a/pages/channel/[id].vue +++ b/pages/channel/[id].vue @@ -2,6 +2,11 @@ hello world - \ No newline at end of file diff --git a/pages/index.vue b/pages/index.vue index 1b0c737..70d0566 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -1,6 +1,6 @@