-
-
Notifications
You must be signed in to change notification settings - Fork 65
Implement Prisma & Neon #747
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR integrates Prisma with Neon into NextAuth for user authentication and session management in the Vets Who Code app.
- Configures Prisma ORM and Neon serverless adapter using
DATABASE_URL
- Refactors NextAuth settings into a shared
options.ts
module with the Prisma adapter - Adds Prisma schema and initial migrations for authentication models
Reviewed Changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
src/pages/auth/error.tsx | Adjusted layout props, error lookup normalization, and styling |
src/pages/api/auth/options.ts | Defined NextAuth options with PrismaAdapter and GitHub callbacks |
src/pages/api/auth/[...nextauth].ts | Simplified API entrypoint to use shared options |
src/lib/prisma.ts | Initialized PrismaClient with Neon adapter and dev persistence |
prisma/schema.prisma | Added models for User, Account, Session, VerificationToken, etc. |
prisma/migrations/* | Included lock file and initial SQL migration for new models |
package.json | Added Prisma, Neon, NextAuth Prisma adapter, bumped dependencies |
.nvmrc | Updated Node version to v20 |
Comments suppressed due to low confidence (5)
src/pages/auth/error.tsx:60
- Making
Layout
required may break pages that omit it. Consider keeping it optional or ensuring all pages define aLayout
property.
Layout: typeof Layout;
src/pages/auth/error.tsx:91
- [nitpick] Reducing the container height from full viewport to 75vh may cause unexpected whitespace on smaller screens; please verify this aligns with the design.
<div className="tw-sm:px-6 tw-lg:px-8 tw-flex tw-min-h-[75vh] tw-flex-col tw-justify-center tw-bg-gray-50 tw-py-12">
src/pages/auth/error.tsx:132
- The
tw-text-secondary
utility may not be defined in the Tailwind config. Ensure this color token exists or revert to a standard gray shade.
<p className="tw-text-sm tw-text-secondary">
src/lib/prisma.ts:9
- If
DATABASE_URL
is undefined, the connection string becomes the literal "undefined". It’s safer to validate the env var and throw an error if missing.
const connectionString = `${process.env.DATABASE_URL}`;
.nvmrc:1
- [nitpick] The version format changed from a plain number to a
v
-prefixed string. For consistency with other projects, consider using20
or20.0.0
without thev
prefix.
v20
src/pages/auth/error.tsx
Outdated
if (errorType && errorMessages[errorType.toLowerCase()]) { | ||
setError(errorMessages[errorType.toLowerCase()]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Calling toLowerCase()
twice is redundant. Extract errorType.toLowerCase()
to a variable for clarity and performance.
if (errorType && errorMessages[errorType.toLowerCase()]) { | |
setError(errorMessages[errorType.toLowerCase()]); | |
if (errorType) { | |
const normalizedErrorType = errorType.toLowerCase(); | |
if (errorMessages[normalizedErrorType]) { | |
setError(errorMessages[normalizedErrorType]); | |
} |
Copilot uses AI. Check for mistakes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jonulak you review this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added in 2844ee1
src/pages/api/auth/options.ts
Outdated
}, | ||
5000 // 5 second timeout | ||
); | ||
console.log(JSON.stringify(res.status)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using JSON.stringify
on a numeric status is unnecessary. Consider console.log(res.status)
for simplicity.
console.log(JSON.stringify(res.status)); | |
console.log(res.status); |
Copilot uses AI. Check for mistakes.
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
commit b56e409 Author: Jerome Hardaway <jerome@vetswhocode.io> Date: Tue Jun 17 18:24:35 2025 -0400 Refactor: Replace Section component imports with EngagementModal in various containers (#781) - Updated imports in blog, brand, contact, course, cta, donate, event, faq, funfact, gradation, newsletter, profile, quote, register-guide, service, team, testimonial, timeline, video, and zoom-meetings containers to use EngagementModal instead of the previous Section component. - Added EngagementModal component with custom animations and accessibility features. - Introduced EngagementModal styles for improved UI/UX. commit bc3c9d2 Author: Jerome Hardaway <jerome@vetswhocode.io> Date: Tue Jun 17 13:22:46 2025 -0400 refactor: remove unused EngagementModal component and associated animations commit 8add330 Author: Jerome Hardaway <jerome@vetswhocode.io> Date: Tue Jun 17 08:44:42 2025 -0400 Add Engagement Modal with custom animations and accessibility features (#780) - Implemented EngagementModal component with props for headline, body, and call-to-action buttons. - Added custom CSS animations for emoji wiggle effect on button hover. - Integrated Framer Motion for smooth modal transitions. - Included accessibility features such as focus trapping and ESC key close functionality. - Added session storage logic to prevent multiple modal displays in a session. - Provided a development-only button to test modal functionality. commit e4c58e6 Author: Jerome Hardaway <jerome@vetswhocode.io> Date: Wed Jun 11 18:44:26 2025 -0400 refactor: streamline request body validation and Slack message formatting
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
@jeromehardaway Changes from master are merged in, ready for review |
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
Pull Request Description
Summary:
This pull request introduces Prisma integration into the NextAuth authentication framework within the Vets Who Code app. Prisma will now handle user authentication and session management, enhancing security and performance across the platform.
Changes Made:
Required Changes
DATABASE_URL
for Neon configResolves #734
Resolves #647