Better file org

This commit is contained in:
Pratik Tripathy
2020-12-01 04:10:21 +05:30
parent 7692376a2b
commit fc075ea55c
12 changed files with 0 additions and 109 deletions

0
src/api/mod.rs Normal file
View File

View File

0
src/config/mod.rs Normal file
View File

0
src/models/mod.rs Normal file
View File

0
src/models/product.rs Normal file
View File

View File

@@ -1,5 +0,0 @@
mod model;
mod routes;
pub use model::Product;
pub use routes::init_routes;

View File

@@ -1,52 +0,0 @@
use crate::api_error::ApiError;
use crate::db;
use crate::schema::products;
use chrono::{NaiveDateTime, Utc};
use diesel::prelude::*;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, AsChangeset)]
#[table_name = "products"]
pub struct ProductMessage {
pub productid: i32,
pub productname: String,
}
#[derive(Serialize, Deserialize, Queryable, Insertable)]
#[table_name = "products"]
pub struct Product {
pub productid: i32,
pub productname: String,
pub created_at: NaiveDateTime
}
impl Product {
pub fn find_all() -> Result<Vec<Self>, ApiError> {
let conn = db::connection()?;
let products = products::table
.load::<Product>(&conn)?;
Ok(products)
}
pub fn find(id: i32) -> Result<Self, ApiError> {
let conn = db::connection()?;
let product = products::table
.filter(products::productid.eq(id))
.first(&conn)?;
Ok(product)
}
}
impl From<ProductMessage> for Product {
fn from(product: ProductMessage) -> Self {
Product {
productid: product.productid,
productname: product.productname,
created_at: Utc::now().naive_utc(),
}
}
}

View File

@@ -1,20 +0,0 @@
// src/product/routes.rs
use crate::product::Product;
use actix_web::{get, post, web, HttpResponse, Responder};
#[get("/products")]
async fn find_all() -> impl Responder {
let products = Product::find_all().expect("Error fetching all Products");
HttpResponse::Ok().json(products)
}
#[get("/product/{id}")]
async fn find(id: web::Path<i32>) -> impl Responder {
let product = Product::find(id.into_inner()).expect("Error fetching Product");
HttpResponse::Ok().json(product)
}
pub fn init_routes(cfg: &mut web::ServiceConfig) {
cfg.service(find_all);
cfg.service(find);
}

View File

@@ -1,32 +0,0 @@
table! {
order_details (orderid, productid) {
orderid -> Int4,
productid -> Int4,
quantity -> Int4,
}
}
table! {
orders (orderid) {
customer_email -> Text,
orderid -> Int4,
created_at -> Timestamp,
}
}
table! {
products (productid) {
productid -> Int4,
productname -> Text,
created_at -> Timestamp,
}
}
joinable!(order_details -> orders (orderid));
joinable!(order_details -> products (productid));
allow_tables_to_appear_in_same_query!(
order_details,
orders,
products,
);

0
src/utils/mod.rs Normal file
View File