From 5b95621d04f5c002b2cb2d5575bafcc05e851eca Mon Sep 17 00:00:00 2001 From: "mace@manjaro" Date: Sat, 3 Dec 2022 15:06:32 +0100 Subject: [PATCH] user addable --- docker-compose.yml | 2 +- src/main.rs | 18 ++++++++---------- src/models/mod.rs | 2 ++ src/schema.rs | 27 +++++++++++++++++++++++++++ src/views/mod.rs | 4 +++- 5 files changed, 41 insertions(+), 12 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f2a6bb6..e3abf8d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: postgres: - container_name: 'to-do-postgres' + container_name: 'rss-postgres' image: 'postgres:latest' restart: always ports: diff --git a/src/main.rs b/src/main.rs index bd25227..9cce696 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,3 @@ -#[macro_use] extern crate diesel; extern crate dotenv; @@ -7,6 +6,9 @@ use actix_web::{App, HttpResponse, HttpServer}; use env_logger; use futures::future::{ok, Either}; use log; +mod auth; +mod database; +mod json_serialization; mod models; mod reader; mod schema; @@ -15,14 +17,6 @@ mod views; #[actix_rt::main] async fn main() -> std::io::Result<()> { env_logger::init(); - // let feed: String = String::from("https://www.heise.de/rss/heise.rdf"); - // let channel: Channel = get_feed(&feed).await?; - - // for item in channel.items { - // println!("{:?}", item.guid().unwrap()); - // } - - // Ok(()) HttpServer::new(|| { let app = App::new() @@ -30,8 +24,12 @@ async fn main() -> std::io::Result<()> { let passed: bool; let request_url: String = String::from(req.uri().path().clone()); + log::info!("Request Url: {}", request_url); if req.path().contains("/reader/") { - todo!("implement"); + match auth::process_token(&req) { + Ok(_token) => passed = true, + Err(_message) => passed = false, + } } else { passed = true; } diff --git a/src/models/mod.rs b/src/models/mod.rs index 22d12a3..cd6a66e 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -1 +1,3 @@ +pub mod feed; +pub mod feed_item; pub mod user; diff --git a/src/schema.rs b/src/schema.rs index f242c0a..14d46e7 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -1,5 +1,23 @@ // @generated automatically by Diesel CLI. +diesel::table! { + feed (id) { + id -> Int4, + user_id -> Int4, + title -> Varchar, + url -> Varchar, + } +} + +diesel::table! { + feed_item (id) { + id -> Int4, + feed_id -> Int4, + content -> Text, + read -> Bool, + } +} + diesel::table! { users (id) { id -> Int4, @@ -9,3 +27,12 @@ diesel::table! { unique_id -> Varchar, } } + +diesel::joinable!(feed -> users (user_id)); +diesel::joinable!(feed_item -> feed (feed_id)); + +diesel::allow_tables_to_appear_in_same_query!( + feed, + feed_item, + users, +); diff --git a/src/views/mod.rs b/src/views/mod.rs index e6e325e..30b4de2 100644 --- a/src/views/mod.rs +++ b/src/views/mod.rs @@ -1,8 +1,10 @@ use actix_web::web; +pub(crate) mod path; +mod users; pub fn views_factory(app: &mut web::ServiceConfig) { // auth::auth_factory(app); // to_do::item_factory(app); // app::app_factory(app); - // users::user_factory(app); + users::user_factory(app); }