From 9f8f49283d5932de91d189cd5a72309807ece00b Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Tue, 3 Mar 2020 16:16:03 +0100 Subject: Restructure the project --- src/main.rs | 50 +++++--------------------------------------------- 1 file changed, 5 insertions(+), 45 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index d1ebe7b..93a22a6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,21 +1,17 @@ #![feature(proc_macro_hygiene, decl_macro)] +#![feature(try_trait)] #[macro_use] extern crate rocket; #[macro_use] extern crate lazy_static; +mod database; +mod errors; mod serve; -use postgres::{Client, NoTls}; -use std::sync::{Arc, Mutex}; - -lazy_static! { - static ref CLIENT: Arc> = Arc::new(Mutex::new( - Client::connect("host=track_db user=postgres password=example", NoTls).unwrap() - )); -} +mod spotify; fn main() { - //initialize_db().unwrap(); + //database::initialize_db().unwrap(); println!("connected with db"); rocket::ignite() .mount( @@ -29,39 +25,3 @@ fn main() { ) .launch(); } - -fn initialize_db() -> Result<(), postgres::Error> { - let mut client = CLIENT.lock().unwrap(); - //let _ = client.batch_execute("DROP TABLE user_track; DROP TABLE suser; DROP TABLE track;"); - client.batch_execute( - r#" - CREATE TABLE track IF NOT EXISTS ( - track_id SERIAL PRIMARY KEY, - track_code TEXT NOT NULL UNIQUE, - name TEXT NOT NULL, - artist TEXT NOT NULL, - popularity int DEFAULT 50 - ); - CREATE TABLE suser IF NOT EXISTS ( - user_id SERIAL PRIMARY KEY, - user_name TEXT NOT NULL UNIQUE - ); - CREATE TABLE user_track_raw IF NOT EXISTS ( - track_id int REFERENCES track (track_id) ON UPDATE CASCADE ON DELETE CASCADE, - user_id int REFERENCES suser (user_id) ON UPDATE CASCADE ON DELETE CASCADE, - count int NOT NULL DEFAULT 1, - CONSTRAINT track_user_pkey PRIMARY KEY (track_id, user_id) - ); - - CREATE OR REPLACE VIEW user_track AS ( - SELECT *, "count" / ( - SELECT SUM("count") - FROM user_track ut - WHERE ut.user_id = user_id - )::decimal AS score - FROM user_track - ); - "#, - )?; - Ok(()) -} -- cgit v1.2.3-54-g00ecf