summaryrefslogblamecommitdiff
path: root/dichroism/src/product_repo.rs
blob: 6f40b2042f208a75578c14aefc51462c165b1b12 (plain) (tree)
1
2
3
4
5
6
7
8
9

                    
                     




                               
                                                                            
















                                                                      
 
use crate::entities;
use crate::models;
use crate::schema::*;
use diesel::prelude::*;
use diesel::result::Error;

type DBConn = SqliteConnection;

pub fn read_products(conn: &DBConn) -> Result<Vec<models::Product>, Error> {
    let query = products::table.inner_join(photo_sets::table).select((
        products::id,
        products::name,
        products::description,
        products::quantity,
        products::cents,
        products::featured,
        photo_sets::original,
        photo_sets::fullsize,
        photo_sets::base,
        photo_sets::thumbnail,
    ));
    Ok(query
        .load::<entities::Product>(conn)?
        .into_iter()
        .map(|p| p.into())
        .collect::<Vec<models::Product>>())
}