summaryrefslogblamecommitdiff
path: root/dichroism/src/repo/mod.rs
blob: 0df8aada7341483e267d5d582e1f11b38c8dfa7b (plain) (tree)
1
2
3
4
5
6
7
8
9
                  
                     


                          

             

                               
                                                                            
















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

mod entities;

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>>())
}