TyPe MiSmAtCh pGdAtE eXpEcTeD StRiNg

This commit is contained in:
LinlyBoi
2022-12-23 19:35:08 +00:00
parent 99ec37991e
commit bcf3ec0d8c
6 changed files with 42 additions and 6 deletions

1
Cargo.lock generated
View File

@@ -424,6 +424,7 @@ name = "db-frontend"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"common", "common",
"diesel",
"yew", "yew",
] ]

View File

@@ -1,4 +1,6 @@
use diesel::prelude::*; use diesel::prelude::*;
use diesel::pg::data_types::PgDate;
use common::CommonDriver;
use crate::models::{Driver,NewDriver}; use crate::models::{Driver,NewDriver};
pub fn listdrivers(connection: &mut PgConnection) pub fn listdrivers(connection: &mut PgConnection)
@@ -19,3 +21,19 @@ pub fn addriver(connection: &mut PgConnection, new_driver: NewDriver){
.execute(connection) .execute(connection)
.expect("Couldn't insert new driver :)"); .expect("Couldn't insert new driver :)");
} }
pub fn get_driver(connection: &mut PgConnection, driver_id: i32) -> CommonDriver {
use crate::schema::drivers::dsl::*;
let driver = &mut drivers
.filter(id.eq(driver_id))
.limit(1)
.load::<Driver>(connection)
.expect("no drivers :(")[0];
return CommonDriver {
id: driver.id,
name: String::from(&driver.name),
address: String::from(&driver.address),
reg_date: &driver.regdate,
birthdate: String::from(&driver.birthdate),
};
}

View File

@@ -83,8 +83,7 @@ pub struct Driver {
#[derive(Insertable)] #[derive(Insertable)]
#[diesel(table_name = drivers)] #[diesel(table_name = drivers)]
pub pub struct NewDriver<'a> {
struct NewDriver<'a> {
pub id: i32, pub id: i32,
pub name: &'a str, pub name: &'a str,
pub address: &'a str, pub address: &'a str,

View File

@@ -15,3 +15,13 @@ pub struct CommonAdmin {
pub name: String, pub name: String,
pub address: String, pub address: String,
} }
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CommonDriver {
pub id: i32,
pub name: String,
pub address: String,
pub reg_date: i32,
pub birthdate: i32,
}

View File

@@ -8,3 +8,4 @@ edition = "2021"
[dependencies] [dependencies]
yew = { version = "0.20.0", features = ["csr"] } yew = { version = "0.20.0", features = ["csr"] }
common = { path = "../common"} common = { path = "../common"}
diesel = { version = "2.0.0",features = ["postgres","r2d2"] }

View File

@@ -3,9 +3,10 @@ use actix_web::{
web::{self, Json}, web::{self, Json},
App, HttpServer, App, HttpServer,
}; };
use backend::{admin_data::get_admin, establish_connection, ticket_data::get_ticket}; use backend::{establish_connection, admin_data::get_admin, ticket_data::get_ticket, driver_data::get_driver};
use common::CommonAdmin; use common::CommonAdmin;
use common::CommonTicket; use common::CommonTicket;
use common::CommonDriver;
// //Admin Services // //Admin Services
// #[get("/api/admin/{id}")] // #[get("/api/admin/{id}")]
@@ -20,8 +21,8 @@ use common::CommonTicket;
//Ticket Table Services //Ticket Table Services
#[get("api/ticket/{id}")] #[get("api/ticket/{id}")]
async fn api_ticket(id: web::Path<i32>) -> Json<CommonTicket> { async fn api_ticket(id: web::Path<i32>) -> Json<CommonTicket> {
let fetched_ticket = get_ticket(&mut establish_connection(), *id); let fetched_ticket_data = get_ticket(&mut establish_connection(), *id);
Json(fetched_ticket) Json(fetched_ticket_data)
} }
// Getting admin data or smth idk // Getting admin data or smth idk
@@ -31,9 +32,15 @@ async fn api_admin(id: web::Path<i32>) -> Json<CommonAdmin> {
Json(fetched_admin_data) Json(fetched_admin_data)
} }
#[get("api/driver/{id}")]
async fn api_driver(id: web::Path<i32>) -> Json<CommonDriver> {
let fetched_driver_data = get_driver(&mut establish_connection(), *id);
Json(fetched_driver_data)
}
#[actix_web::main] #[actix_web::main]
async fn main() -> std::io::Result<()> { async fn main() -> std::io::Result<()> {
HttpServer::new(|| App::new().service(api_ticket).service(api_admin)) HttpServer::new(|| App::new().service(api_ticket).service(api_admin).service(api_driver))
.bind(("0.0.0.0", 48590))? .bind(("0.0.0.0", 48590))?
.run() .run()
.await .await