Skip to content

Commit 362fe86

Browse files
committed
server: Refactor create app/appmetadata into a separate function
1 parent 16d1fe1 commit 362fe86

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

server/svix-server/src/v1/endpoints/application.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ use axum::{
1212
use chrono::{DateTime, Utc};
1313
use futures::FutureExt;
1414
use schemars::JsonSchema;
15-
use sea_orm::{ActiveModelTrait, ActiveValue::Set, TransactionTrait};
15+
use sea_orm::{ActiveModelTrait, ActiveValue::Set, DatabaseConnection, TransactionTrait};
1616
use serde::{Deserialize, Serialize};
1717
use svix_server_derive::{aide_annotate, ModelOut};
1818
use validator::{Validate, ValidationError};
1919

2020
use crate::{
2121
core::{
2222
permissions,
23-
types::{metadata::Metadata, ApplicationId, ApplicationUid},
23+
types::{metadata::Metadata, ApplicationId, ApplicationUid, OrganizationId},
2424
},
2525
db::models::{application, applicationmetadata},
2626
error::{http_error_on_conflict, HttpError, Result, Traceable},
@@ -270,11 +270,21 @@ async fn create_application(
270270
};
271271
}
272272

273-
let app = application::ActiveModel::new(org_id.clone());
273+
let (app, metadata) = create_app_from_app_in(db, data, org_id).await?;
274+
275+
Ok(JsonStatusUpsert::Created((app, metadata).into()))
276+
}
277+
278+
pub async fn create_app_from_app_in(
279+
db: &DatabaseConnection,
280+
app_in: ApplicationIn,
281+
org_id: OrganizationId,
282+
) -> Result<(application::Model, applicationmetadata::Model)> {
283+
let app = application::ActiveModel::new(org_id);
274284
let metadata = applicationmetadata::ActiveModel::new(app.id.clone().unwrap(), None);
275285

276286
let mut model = (app, metadata);
277-
data.update_model(&mut model);
287+
app_in.update_model(&mut model);
278288
let (app, metadata) = model;
279289

280290
let (app, metadata) = db
@@ -288,7 +298,7 @@ async fn create_application(
288298
})
289299
.await?;
290300

291-
Ok(JsonStatusUpsert::Created((app, metadata).into()))
301+
Ok((app, metadata))
292302
}
293303

294304
/// Get an application.

0 commit comments

Comments
 (0)