Skip to content

Commit

Permalink
editoast: use only one connection for infra clone
Browse files Browse the repository at this point in the history
  • Loading branch information
Tristramg committed Aug 15, 2023
1 parent 407ed8a commit 6fbee33
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions editoast/src/views/infra/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -271,17 +271,14 @@ async fn clone(
db_pool: Data<DbPool>,
new_name: Query<InfraForm>,
) -> Result<Json<i64>> {
let db_pool_ref = db_pool.clone();
let mut futures = Vec::<Pin<Box<dyn Future<Output = _>>>>::new();

let infra = infra.into_inner();
let name = new_name.name.clone();
let cloned_infra = Infra::clone(infra, db_pool_ref.clone(), name).await?;

let cloned_infra = Infra::clone(infra, db_pool.clone(), name).await?;
let mut conn = db_pool.get().await?;
for object in ObjectType::iter() {
let model_table = object.get_table();
let db_pool_ref = db_pool.clone();
let mut conn = db_pool_ref.get().await?;
let model = sql_query(format!(
"INSERT INTO {model_table}(id, obj_id,data,infra_id) SELECT nextval('{model_table}_id_seq'), obj_id,data,$1 FROM {model_table} WHERE infra_id=$2"
))
Expand All @@ -300,8 +297,7 @@ async fn clone(
"INSERT INTO {layer_table}(id, obj_id,geographic,schematic,infra_id, angle_geo, angle_sch) SELECT nextval('{layer_table}_id_seq'), obj_id,geographic,schematic,$1,angle_geo,angle_sch FROM {layer_table} WHERE infra_id=$2"
)
};
let db_pool_ref = db_pool.clone();
let mut conn = db_pool_ref.get().await?;

let layer = sql_query(sql)
.bind::<BigInt, _>(cloned_infra.id.unwrap())
.bind::<BigInt, _>(infra)
Expand Down

0 comments on commit 6fbee33

Please sign in to comment.