@@ -24,6 +24,7 @@ const mapStoredUserToAdapterUser = (
24
24
id : user . user_id ,
25
25
email : user . email ,
26
26
emailVerified : user . email_verified_at ,
27
+ //Ensure name always has placeholder for last_name
27
28
name : `${ user . first_name } ${ user . last_name } ` ,
28
29
image : user . image_url ,
29
30
profile : { role : user . role as UserType } , // Add the role to the profile
@@ -59,10 +60,10 @@ export const createPersistedAuthAdapter = (
59
60
const role =
60
61
Number ( numOfUsers . count ) === 0 ? UserType . Admin : UserType . User ;
61
62
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
+
66
67
const createdUser = await db
67
68
. insertInto ( "user" )
68
69
. values ( {
@@ -79,6 +80,7 @@ export const createPersistedAuthAdapter = (
79
80
80
81
return mapStoredUserToAdapterUser ( createdUser ) ;
81
82
} ,
83
+
82
84
async getUser ( id ) {
83
85
const user = await db
84
86
. selectFrom ( "user" )
@@ -87,6 +89,7 @@ export const createPersistedAuthAdapter = (
87
89
. executeTakeFirstOrThrow ( ) ;
88
90
return mapStoredUserToAdapterUser ( user ) ;
89
91
} ,
92
+
90
93
async getUserByEmail ( email ) {
91
94
const user = await db
92
95
. selectFrom ( "user" )
@@ -95,6 +98,7 @@ export const createPersistedAuthAdapter = (
95
98
. executeTakeFirst ( ) ;
96
99
return user ? mapStoredUserToAdapterUser ( user ) : null ;
97
100
} ,
101
+
98
102
async getUserByAccount ( { providerAccountId, provider } ) {
99
103
const user = await db
100
104
. selectFrom ( "user" )
@@ -105,13 +109,14 @@ export const createPersistedAuthAdapter = (
105
109
. executeTakeFirst ( ) ;
106
110
return user ? mapStoredUserToAdapterUser ( user ) : null ;
107
111
} ,
112
+
108
113
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
113
117
114
118
let updatedUser : Selectable < ZapatosTableNameToKyselySchema < "user" > > ;
119
+
115
120
if ( user . id ) {
116
121
updatedUser = await db
117
122
. updateTable ( "user" )
@@ -143,9 +148,11 @@ export const createPersistedAuthAdapter = (
143
148
144
149
return mapStoredUserToAdapterUser ( updatedUser ) ;
145
150
} ,
151
+
146
152
async deleteUser ( userId ) {
147
153
await db . deleteFrom ( "user" ) . where ( "user_id" , "=" , userId ) . execute ( ) ;
148
154
} ,
155
+
149
156
async linkAccount ( account ) {
150
157
const data : InsertObject < KyselySchema , "account" > = {
151
158
user_id : account . userId ,
@@ -168,6 +175,7 @@ export const createPersistedAuthAdapter = (
168
175
)
169
176
. execute ( ) ;
170
177
} ,
178
+
171
179
async unlinkAccount ( {
172
180
providerAccountId,
173
181
provider,
@@ -178,6 +186,7 @@ export const createPersistedAuthAdapter = (
178
186
. where ( "provider_name" , "=" , provider )
179
187
. execute ( ) ;
180
188
} ,
189
+
181
190
async createSession ( { sessionToken, userId, expires } ) {
182
191
const session = await db
183
192
. insertInto ( "session" )
@@ -191,6 +200,7 @@ export const createPersistedAuthAdapter = (
191
200
192
201
return mapStoredSessionToAdapterSession ( session ) ;
193
202
} ,
203
+
194
204
async getSessionAndUser ( sessionToken ) {
195
205
const sessionAndUser = await db
196
206
. selectFrom ( "session" )
@@ -208,6 +218,7 @@ export const createPersistedAuthAdapter = (
208
218
209
219
return null ;
210
220
} ,
221
+
211
222
async updateSession ( session ) {
212
223
const updatedSession = await db
213
224
. updateTable ( "session" )
@@ -220,6 +231,7 @@ export const createPersistedAuthAdapter = (
220
231
221
232
return mapStoredSessionToAdapterSession ( updatedSession ) ;
222
233
} ,
234
+
223
235
async deleteSession ( sessionToken ) {
224
236
await db
225
237
. deleteFrom ( "session" )
0 commit comments