@@ -219,9 +219,29 @@ export async function updatePersona(
219
219
) : Promise < [ Response , Response | null ] > {
220
220
const { id, existingPromptId } = personaUpdateRequest ;
221
221
222
- // first update prompt
222
+ let fileId = null ;
223
+ if ( personaUpdateRequest . uploaded_image ) {
224
+ fileId = await uploadFile ( personaUpdateRequest . uploaded_image ) ;
225
+ if ( ! fileId ) {
226
+ return [ new Response ( null , { status : 400 } ) , null ] ;
227
+ }
228
+ }
229
+
230
+ const updatePersonaResponse = await fetch ( `/api/persona/${ id } ` , {
231
+ method : "PATCH" ,
232
+ headers : {
233
+ "Content-Type" : "application/json" ,
234
+ } ,
235
+ body : JSON . stringify (
236
+ buildPersonaAPIBody ( personaUpdateRequest , existingPromptId ?? 0 , fileId )
237
+ ) ,
238
+ } ) ;
239
+
240
+ if ( ! updatePersonaResponse . ok ) {
241
+ return [ updatePersonaResponse , null ] ;
242
+ }
243
+
223
244
let promptResponse ;
224
- let promptId ;
225
245
if ( existingPromptId !== undefined ) {
226
246
promptResponse = await updatePrompt ( {
227
247
promptId : existingPromptId ,
@@ -230,38 +250,15 @@ export async function updatePersona(
230
250
taskPrompt : personaUpdateRequest . task_prompt ,
231
251
includeCitations : personaUpdateRequest . include_citations ,
232
252
} ) ;
233
- promptId = existingPromptId ;
234
253
} else {
235
254
promptResponse = await createPrompt ( {
236
255
personaName : personaUpdateRequest . name ,
237
256
systemPrompt : personaUpdateRequest . system_prompt ,
238
257
taskPrompt : personaUpdateRequest . task_prompt ,
239
258
includeCitations : personaUpdateRequest . include_citations ,
240
259
} ) ;
241
- promptId = promptResponse . ok ? ( await promptResponse . json ( ) ) . id : null ;
242
260
}
243
261
244
- let fileId = null ;
245
- if ( personaUpdateRequest . uploaded_image ) {
246
- fileId = await uploadFile ( personaUpdateRequest . uploaded_image ) ;
247
- if ( ! fileId ) {
248
- return [ promptResponse , null ] ;
249
- }
250
- }
251
-
252
- const updatePersonaResponse =
253
- promptResponse . ok && promptId
254
- ? await fetch ( `/api/persona/${ id } ` , {
255
- method : "PATCH" ,
256
- headers : {
257
- "Content-Type" : "application/json" ,
258
- } ,
259
- body : JSON . stringify (
260
- buildPersonaAPIBody ( personaUpdateRequest , promptId , fileId )
261
- ) ,
262
- } )
263
- : null ;
264
-
265
262
return [ promptResponse , updatePersonaResponse ] ;
266
263
}
267
264
0 commit comments