@@ -261,66 +261,31 @@ pub async fn merge_application_by_pr_number(
261
261
owner : String ,
262
262
repo : String ,
263
263
pr_number : u64 ,
264
- ) -> Result < ApplicationModel , sea_orm:: DbErr > {
264
+ ) -> Result < ( ) , sea_orm:: DbErr > {
265
265
let conn = get_database_connection ( ) . await ?;
266
266
let pr_application =
267
267
get_application_by_pr_number ( owner. clone ( ) , repo. clone ( ) , pr_number) . await ?;
268
- let mut exists_merged = true ;
269
268
270
- let mut merged_application = match get_application (
269
+ let mut application_active_model: ActiveModel ;
270
+ if let Ok ( application) = get_application (
271
271
pr_application. id . clone ( ) ,
272
272
owner. clone ( ) ,
273
273
repo. clone ( ) ,
274
274
Some ( 0 ) ,
275
275
)
276
276
. await
277
277
{
278
- Ok ( application) => application. into_active_model ( ) ,
279
- Err ( _) => {
280
- exists_merged = false ;
281
- ActiveModel {
282
- id : Set ( pr_application. id . clone ( ) ) ,
283
- owner : Set ( owner) ,
284
- repo : Set ( repo) ,
285
- pr_number : Set ( 0 ) ,
286
- application : Set ( pr_application. application . clone ( ) ) ,
287
- path : Set ( pr_application. path . clone ( ) ) ,
288
- ..Default :: default ( )
289
- }
290
- }
291
- } ;
292
-
293
- let mut hasher = Sha1 :: new ( ) ;
294
- let application = match pr_application. application . clone ( ) {
295
- Some ( app) => format ! ( "blob {}\x00 {}" , app. len( ) , app) ,
296
- None => "" . to_string ( ) ,
297
- } ;
298
- hasher. update ( application. as_bytes ( ) ) ;
299
- let file_sha = format ! ( "{:x}" , hasher. finalize( ) ) ;
300
- merged_application. sha = Set ( Some ( file_sha) ) ;
301
- merged_application. application = Set ( pr_application. application . clone ( ) ) ;
302
-
303
- pr_application. delete ( & conn) . await ?;
304
-
305
- if exists_merged {
306
- let result = merged_application. update ( & conn) . await ;
307
- match result {
308
- Ok ( application) => Ok ( application) ,
309
- Err ( e) => Err ( sea_orm:: DbErr :: Custom ( format ! (
310
- "Failed to merge application: {}" ,
311
- e
312
- ) ) ) ,
313
- }
278
+ application_active_model = application. into_active_model ( ) ;
279
+ application_active_model. application = Set ( pr_application. application . clone ( ) ) ;
280
+ application_active_model. sha = Set ( pr_application. sha . clone ( ) ) ;
281
+ application_active_model. update ( & conn) . await ?;
314
282
} else {
315
- let result = merged_application. insert ( & conn) . await ;
316
- match result {
317
- Ok ( application) => Ok ( application) ,
318
- Err ( e) => Err ( sea_orm:: DbErr :: Custom ( format ! (
319
- "Failed to merge application: {}" ,
320
- e
321
- ) ) ) ,
322
- }
283
+ application_active_model = pr_application. clone ( ) . into_active_model ( ) ;
284
+ application_active_model. pr_number = Set ( 0 ) ;
285
+ application_active_model. insert ( & conn) . await ?;
323
286
}
287
+ pr_application. delete ( & conn) . await ?;
288
+ Ok ( ( ) )
324
289
}
325
290
326
291
/**
0 commit comments