summaryrefslogtreecommitdiff
path: root/dichroism/src/repo/mod.rs
blob: 0df8aada7341483e267d5d582e1f11b38c8dfa7b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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>>())
}