Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.85 KB | None | 0 0
  1. let result = conn.transaction::<i32, Error, _>(|| {
  2.         match diesel::insert_into(orders::dsl::orders)
  3.             .values(NewOrder::empty())
  4.             .returning(orders::dsl::id)
  5.             .get_result(&*conn)
  6.         {
  7.             Ok(inserted_id) => {
  8.                 let order_items: Vec<NewOrderItem> = order
  9.                     .0
  10.                     .order_items
  11.                     .iter()
  12.                     .map(|item| {
  13.                         NewOrderItem::new(inserted_id, item.product_code.clone(), item.quantity)
  14.                     })
  15.                     .collect();
  16.                 diesel::insert_into(order_items::dsl::order_items)
  17.                     .values(order_items)
  18.                     .execute(&*conn)?;
  19.                 Ok(inserted_id)
  20.             }
  21.             Err(e) => Err(Error::NotFound),
  22.         }
  23.     });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement