From 75a5d058cf93ef921a8d532449860083b66e6292 Mon Sep 17 00:00:00 2001 From: dokmy <142666819+dokmy@users.noreply.github.com> Date: Fri, 12 Jan 2024 19:10:21 +0800 Subject: [PATCH] finish first version with membership and Stripegit add . --- package-lock.json | 73 ++++++--------- package.json | 2 +- .../(routes)/sign-up/[[...sign-up]]/page.tsx | 4 +- .../(routes)/results/[searchId]/page.tsx | 2 +- src/app/(root)/(routes)/settings/page.tsx | 12 ++- src/app/api/chat/route.ts | 2 +- src/app/api/get-messages/route.ts | 2 +- src/app/api/get-searches/route.ts | 9 +- src/app/api/search/route.ts | 11 ++- src/app/api/stripe/route.ts | 67 ++++++++++++++ src/app/api/webhook/route.ts | 83 ++++++++++++++++++ src/app/components/navbar.tsx | 4 +- src/app/components/subcription-button.tsx | 24 +++-- src/{ => app}/lib/prismadb.ts | 0 src/app/lib/searchCredits.ts | 14 ++- src/app/lib/stripe.ts | 6 ++ src/app/lib/subscriptions.ts | 2 +- src/app/lib/utils.ts | 4 + src/middleware.ts | 2 +- stripe | Bin 0 -> 21337474 bytes 20 files changed, 239 insertions(+), 84 deletions(-) create mode 100644 src/app/api/stripe/route.ts create mode 100644 src/app/api/webhook/route.ts rename src/{ => app}/lib/prismadb.ts (100%) create mode 100644 src/app/lib/stripe.ts create mode 100755 stripe diff --git a/package-lock.json b/package-lock.json index 995f118..896302c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,6 +50,7 @@ "react-markdown": "^8.0.7", "react-spinners": "^0.13.8", "sswr": "^2.0.0", + "stripe": "^14.11.0", "svelte": "^4.2.0", "tailwind-merge": "^2.1.0", "tailwindcss": "3.3.2", @@ -59,7 +60,6 @@ "vue": "^3.3.4" }, "devDependencies": { - "@playwright/test": "^1.38.0", "@types/md5": "^2.3.2", "prisma": "^5.7.1" } @@ -1452,21 +1452,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@playwright/test": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.38.0.tgz", - "integrity": "sha512-xis/RXXsLxwThKnlIXouxmIvvT3zvQj1JE39GsNieMUrMpb3/GySHDh2j8itCG22qKVD4MYLBp7xB73cUW/UUw==", - "dev": true, - "dependencies": { - "playwright": "1.38.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -6727,36 +6712,6 @@ "node": ">= 6" } }, - "node_modules/playwright": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.38.0.tgz", - "integrity": "sha512-fJGw+HO0YY+fU/F1N57DMO+TmXHTrmr905J05zwAQE9xkuwP/QLDk63rVhmyxh03dYnEhnRbsdbH9B0UVVRB3A==", - "dev": true, - "dependencies": { - "playwright-core": "1.38.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.38.0.tgz", - "integrity": "sha512-f8z1y8J9zvmHoEhKgspmCvOExF2XdcxMW8jNRuX4vkQFrzV4MlZ55iwb5QeyiFQgOFCUolXiRHgpjSEnqvO48g==", - "dev": true, - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/postcss": { "version": "8.4.25", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", @@ -6960,6 +6915,20 @@ "node": ">=6.0.0" } }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7712,6 +7681,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stripe": { + "version": "14.11.0", + "resolved": "https://registry.npmjs.org/stripe/-/stripe-14.11.0.tgz", + "integrity": "sha512-NmFEkDC0PldP7CQtdPgKs5dVZA/pF+IepldbmB+Kk9B4d7EBkWnbANp0y+/zJcbRGul48s8hmQzeqNWUlWW0wg==", + "dependencies": { + "@types/node": ">=8.1.0", + "qs": "^6.11.0" + }, + "engines": { + "node": ">=12.*" + } + }, "node_modules/style-to-object": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz", diff --git a/package.json b/package.json index f255a8b..f4f568b 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "react-markdown": "^8.0.7", "react-spinners": "^0.13.8", "sswr": "^2.0.0", + "stripe": "^14.11.0", "svelte": "^4.2.0", "tailwind-merge": "^2.1.0", "tailwindcss": "3.3.2", @@ -62,7 +63,6 @@ "vue": "^3.3.4" }, "devDependencies": { - "@playwright/test": "^1.38.0", "@types/md5": "^2.3.2", "prisma": "^5.7.1" } diff --git a/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx b/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx index 41ec7bb..23e0ff3 100644 --- a/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx +++ b/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx @@ -3,7 +3,9 @@ import { SignUp } from "@clerk/nextjs"; export default function Page() { return (
dMMCCfgTF
{`SGU@_I$uJ7~2cJDO}SAJw)cV5WWC=hG+8EXg@}W}rEc
zxWptI2AJfH0aKH>B+7X-d7d#fXHHdaX7{1=8ifqzQk)Q
3
z9OX>m@O{)2<*}bQ`lx>UO%ZCKGFNlHSU10$@Nb*Q4JWYYahs30CK!HmCAjUtHcx;y
z$#L%Q&mRu*J79%(loFG7FsCm+w$Q4qv1z!0HR=JKRlZ&IuyX@WUh9NS7t@z@9esr}
zH
p=%d7#wXsE!EdcEzXmUu@9XUGz9NKTb5ISNH$(NFUK)&UtC5lJJc*jBqC5NnmRCG)Q`?W6;d{%r(
zKJcXt4b9a$r&f6JL^wM$z*+CK9XSbHdH9-z^l_XT+P`4jIpEItnCPW2@HL`eHHY2K
zzO?cog{LmsYU4ANwsNSENz2R5?BtnE!9cC_2m5JM=g@u%?PpuTc{#MNF?+{2%Ev^P
zJmB&Ov8;GxJ$<Xw$f{|`_Is)
zi(_aS*-Ts4(N+fZXaAOn+7q8u*>u@KJh!dhhb
B}6Se_M`Yw-paGS@^`%W(Y<-r#cM9P4b8T9^8{lI)5}|
z4V-wBvqc=7E_VFSrYrZgXwFYLz0(tzTbr=q@DlEwz8T+4-{WjQ$UKM5f1T&lh7bDa
z{D@pDu6gf-0I_#`v-Z_ejmR&6WB6XsxyM*^uS4TPZe+8@VQZJ&7~WCh_%*U`qU(5T
zd{pxQulzb|{s#J6%J_BG;!=l3OL^`Ui~Trx_QPC%8Xxl!d=7M^iM1EwvuRA&%E;_r
z554?lw~aC0UpMMK8y9--Dc