radars and vehicles

This commit is contained in:
LinlyBoi
2022-12-25 13:10:38 +02:00
parent 298b35af4c
commit f9dfb4bf64
11 changed files with 133 additions and 25 deletions

View File

@@ -92,8 +92,16 @@ pub struct NewDriver<'a> {
pub struct Vehicle {
pub model: Option<String>,
pub color: Option<String>,
pub chasse_num: i32,
pub chasse_num: Option<i32>,
pub plate_num: String,
pub vehicle_type: String,
pub owner: i32,
pub category: String,
pub owner: Option<String>,
}
#[derive(Queryable, AsChangeset)]
pub struct Radar {
pub id: i32,
pub category: Option<String>,
pub address: Option<String>,
}

View File

@@ -0,0 +1,19 @@
use common::CommonRadar;
use diesel::prelude::*;
use diesel::PgConnection;
use crate::models::Radar;
pub fn get_radar(connection: &mut PgConnection, radar_id: i32) -> CommonRadar {
use crate::schema::radars::dsl::*;
let radar = &mut radars
.filter(id.eq(radar_id))
.limit(1)
.load::<Radar>(connection)
.expect("no radars :(")[0];
return CommonRadar {
id: radar.id,
category: radar.category.clone(),
address: radar.address.clone(),
};
}

View File

@@ -73,10 +73,9 @@ diesel::table! {
}
diesel::table! {
radars (serialnumber) {
serialnumber -> Int4,
#[sql_name = "type"]
type_ -> Nullable<Text>,
radars (id) {
id -> Int4,
category -> Nullable<Text>,
address -> Nullable<Text>,
}
}

View File

@@ -0,0 +1,41 @@
use common::CommonVehicle;
use diesel::prelude::*;
use diesel::PgConnection;
use crate::models::Vehicle;
pub fn get_vehicle(connection: &mut PgConnection, vehicle_id: i32) -> CommonVehicle {
use crate::schema::vehicles::dsl::*;
let vehicle = &mut vehicles
.filter(plate_num.eq(vehicle_id))
.limit(1)
.load::<Vehicle>(connection)
.expect("no vehicles :(")[0];
return CommonVehicle {
model: vehicle.model.clone(),
color: vehicle.color.clone(),
chasse_num: vehicle.chasse_num,
plate_num: vehicle.plate_num.clone(),
vehicle_type: vehicle.vehicle_type.clone(),
category: vehicle.category.clone(),
owner: vehicle.owner,
};
}
pub fn insert_vehicle(connection: &mut PgConnection, vehicle: CommonVehicle) -> bool {
use crate::schema::vehicles::dsl::*;
//convert CommonVehicle to Vehicle
let vehicle = Vehicle {
model: vehicle.model,
color: vehicle.color,
chasse_num: vehicle.chasse_num,
plate_num: vehicle.plate_num,
vehicle_type: vehicle.vehicle_type,
category: vehicle.category,
owner: vehicle.owner,
};
diesel::insert_into(vehicles)
.values(&vehicle)
.execute(connection)
.is_ok()
}