@@ -24,6 +24,7 @@ const mapStoredUserToAdapterUser = (
2424 id : user . user_id ,
2525 email : user . email ,
2626 emailVerified : user . email_verified_at ,
27+ //Ensure name always has placeholder for last_name
2728 name : `${ user . first_name } ${ user . last_name } ` ,
2829 image : user . image_url ,
2930 profile : { role : user . role as UserType } , // Add the role to the profile
@@ -59,10 +60,10 @@ export const createPersistedAuthAdapter = (
5960 const role =
6061 Number ( numOfUsers . count ) === 0 ? UserType . Admin : UserType . User ;
6162
62- const [ first_name , last_name ] = user . name ?. split ( " " ) ?? [
63- user . email ?. split ( "@" ) [ 0 ] ,
64- "" ,
65- ] ;
63+ //fallback for last_name if not provided
64+ let first_name = user . name ?. split ( " " ) [ 0 ] ?? user . email ?. split ( "@" ) [ 0 ] ?? "User" ;
65+ let last_name = user . name ?. split ( " " ) [ 1 ] ?? "." ; // placeholder
66+
6667 const createdUser = await db
6768 . insertInto ( "user" )
6869 . values ( {
@@ -79,6 +80,7 @@ export const createPersistedAuthAdapter = (
7980
8081 return mapStoredUserToAdapterUser ( createdUser ) ;
8182 } ,
83+
8284 async getUser ( id ) {
8385 const user = await db
8486 . selectFrom ( "user" )
@@ -87,6 +89,7 @@ export const createPersistedAuthAdapter = (
8789 . executeTakeFirstOrThrow ( ) ;
8890 return mapStoredUserToAdapterUser ( user ) ;
8991 } ,
92+
9093 async getUserByEmail ( email ) {
9194 const user = await db
9295 . selectFrom ( "user" )
@@ -95,6 +98,7 @@ export const createPersistedAuthAdapter = (
9598 . executeTakeFirst ( ) ;
9699 return user ? mapStoredUserToAdapterUser ( user ) : null ;
97100 } ,
101+
98102 async getUserByAccount ( { providerAccountId, provider } ) {
99103 const user = await db
100104 . selectFrom ( "user" )
@@ -105,13 +109,14 @@ export const createPersistedAuthAdapter = (
105109 . executeTakeFirst ( ) ;
106110 return user ? mapStoredUserToAdapterUser ( user ) : null ;
107111 } ,
112+
108113 async updateUser ( user ) {
109- const [ first_name , last_name ] = user . name ?. split ( " " ) ?? [
110- user . email ?. split ( "@" ) [ 0 ] ,
111- "" ,
112- ] ;
114+ //FIXED: fallback for last_name if not provided
115+ let first_name = user . name ?. split ( " " ) [ 0 ] ?? user . email ?. split ( "@" ) [ 0 ] ?? "User" ;
116+ let last_name = user . name ?. split ( " " ) [ 1 ] ?? "." ; // placeholder
113117
114118 let updatedUser : Selectable < ZapatosTableNameToKyselySchema < "user" > > ;
119+
115120 if ( user . id ) {
116121 updatedUser = await db
117122 . updateTable ( "user" )
@@ -143,9 +148,11 @@ export const createPersistedAuthAdapter = (
143148
144149 return mapStoredUserToAdapterUser ( updatedUser ) ;
145150 } ,
151+
146152 async deleteUser ( userId ) {
147153 await db . deleteFrom ( "user" ) . where ( "user_id" , "=" , userId ) . execute ( ) ;
148154 } ,
155+
149156 async linkAccount ( account ) {
150157 const data : InsertObject < KyselySchema , "account" > = {
151158 user_id : account . userId ,
@@ -168,6 +175,7 @@ export const createPersistedAuthAdapter = (
168175 )
169176 . execute ( ) ;
170177 } ,
178+
171179 async unlinkAccount ( {
172180 providerAccountId,
173181 provider,
@@ -178,6 +186,7 @@ export const createPersistedAuthAdapter = (
178186 . where ( "provider_name" , "=" , provider )
179187 . execute ( ) ;
180188 } ,
189+
181190 async createSession ( { sessionToken, userId, expires } ) {
182191 const session = await db
183192 . insertInto ( "session" )
@@ -191,6 +200,7 @@ export const createPersistedAuthAdapter = (
191200
192201 return mapStoredSessionToAdapterSession ( session ) ;
193202 } ,
203+
194204 async getSessionAndUser ( sessionToken ) {
195205 const sessionAndUser = await db
196206 . selectFrom ( "session" )
@@ -208,6 +218,7 @@ export const createPersistedAuthAdapter = (
208218
209219 return null ;
210220 } ,
221+
211222 async updateSession ( session ) {
212223 const updatedSession = await db
213224 . updateTable ( "session" )
@@ -220,6 +231,7 @@ export const createPersistedAuthAdapter = (
220231
221232 return mapStoredSessionToAdapterSession ( updatedSession ) ;
222233 } ,
234+
223235 async deleteSession ( sessionToken ) {
224236 await db
225237 . deleteFrom ( "session" )
0 commit comments