radars and vehicles
This commit is contained in:
@@ -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>,
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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>,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user