Бэкенд: добавлена проверка в аренду
This commit is contained in:
parent
41f99133e2
commit
2c90088b45
@ -11,9 +11,22 @@ pub struct PostgresRentRepository {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl RentRepository for PostgresRentRepository {
|
impl RentRepository for PostgresRentRepository {
|
||||||
async fn create(&self, rent: BindingRent) -> Result<Rent, String> {
|
async fn create(&self, rent: BindingRent) -> Result<Rent, String> {
|
||||||
|
let query_result = self.connection.query(
|
||||||
|
"SELECT * FROM Rent WHERE car_id=$1 AND time_amount IS NOT NULL",
|
||||||
|
&[&rent.car_id]
|
||||||
|
).await;
|
||||||
|
|
||||||
|
if let Ok(rows) = query_result {
|
||||||
|
if rows.len() > 0 {
|
||||||
|
return Err("The car is already occupied".to_owned());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return Err("Something gone wrong during checking for existing rents".to_owned());
|
||||||
|
}
|
||||||
|
|
||||||
let result = self.connection.query(
|
let result = self.connection.query(
|
||||||
"INSERT INTO Rent(time_amount, client_id, car_id) \
|
"INSERT INTO Rent(time_amount, client_id, car_id) \
|
||||||
VALUES ($1, $2, $3, $4) RETURNING *",
|
VALUES ($1, $2, $3) RETURNING *",
|
||||||
&[&rent.time_amount, &rent.client_id, &rent.car_id]
|
&[&rent.time_amount, &rent.client_id, &rent.car_id]
|
||||||
).await;
|
).await;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user