1
1
const express = require ( 'express' ) ;
2
+ const router = express . Router ( ) ;
2
3
const User = require ( '../models/User' ) ;
3
4
const bcrypt = require ( 'bcrypt' ) ;
4
- const router = express . Router ( ) ;
5
+ const { isAuthenticated } = require ( './middleware/authMiddleware' ) ;
6
+ const OpenAI = require ( 'openai' ) ;
5
7
6
8
router . get ( '/auth/register' , ( req , res ) => {
7
9
res . render ( 'register' ) ;
@@ -46,11 +48,43 @@ router.post('/auth/login', async (req, res) => {
46
48
router . get ( '/auth/logout' , ( req , res ) => {
47
49
req . session . destroy ( err => {
48
50
if ( err ) {
49
- console . error ( 'Error during session destruction:' , err ) ; // gpt_pilot_debugging_log
51
+ console . error ( 'Error during session destruction:' , err ) ;
50
52
return res . status ( 500 ) . send ( 'Error logging out' ) ;
51
53
}
52
54
res . redirect ( '/auth/login' ) ;
53
55
} ) ;
54
56
} ) ;
55
57
56
- module . exports = router ;
58
+ router . get ( '/profile' , isAuthenticated , async ( req , res ) => {
59
+ try {
60
+ const user = await User . findById ( req . session . userId ) ;
61
+ const errorMessage = req . session . errorMessage ;
62
+ const successMessage = req . session . successMessage ;
63
+ delete req . session . errorMessage ;
64
+ delete req . session . successMessage ;
65
+ res . render ( 'profile' , { user, errorMessage, successMessage } ) ;
66
+ } catch ( error ) {
67
+ console . error ( 'Error fetching user profile:' , error ) ;
68
+ res . status ( 500 ) . send ( 'Error fetching user profile' ) ;
69
+ }
70
+ } ) ;
71
+
72
+ router . post ( '/update-profile' , isAuthenticated , async ( req , res ) => {
73
+ try {
74
+ const { openaiApiKey } = req . body ;
75
+
76
+ // Verify the OpenAI API key
77
+ const openai = new OpenAI ( { apiKey : openaiApiKey } ) ;
78
+ await openai . models . list ( ) ; // This will throw an error if the key is invalid
79
+
80
+ await User . findByIdAndUpdate ( req . session . userId , { openaiApiKey } ) ;
81
+ req . session . successMessage = 'Profile updated successfully' ;
82
+ res . redirect ( '/profile' ) ;
83
+ } catch ( error ) {
84
+ console . error ( 'Error updating user profile:' , error ) ;
85
+ req . session . errorMessage = 'Invalid OpenAI API key or error updating profile' ;
86
+ res . redirect ( '/profile' ) ;
87
+ }
88
+ } ) ;
89
+
90
+ module . exports = router ;
0 commit comments