- Readme changes

- docker fixed version postresql
- sync [WIP]
This commit is contained in:
2023-10-07 19:10:04 +02:00
parent 6822b5eab5
commit ec35f66a88
7 changed files with 51 additions and 11 deletions
+1 -1
View File
@@ -22,6 +22,6 @@ pub fn feed_factory(app: &mut web::ServiceConfig) {
);
app.route(
&base_path.define(String::from("/sync")),
web::post().to(sync::sync),
actix_web::Route::to(web::post(), sync::sync),
);
}
+21 -5
View File
@@ -1,19 +1,35 @@
use super::feeds;
use crate::{database::establish_connection, models::feed::rss_feed::Feed, schema::feed};
use actix_web::{HttpRequest, HttpResponse, Responder};
use crate::{
database::establish_connection,
models::feed::rss_feed::Feed,
schema::feed::{self, user_id},
};
use actix_web::{web, HttpRequest, HttpResponse, Responder};
use diesel::prelude::*;
use futures::StreamExt;
use serde_derive::Deserialize;
pub async fn sync(req: HttpRequest) -> impl Responder {
#[derive(Deserialize)]
pub struct JsonUser {
user_id: String,
}
pub async fn sync(_req: HttpRequest, data: web::Json<JsonUser>) -> impl Responder {
let mut connection: diesel::PgConnection = establish_connection();
let feed: Vec<Feed> = feed::table.load::<Feed>(&mut connection).unwrap();
let req_user_id = data.user_id.parse::<i32>().unwrap();
log::info!("{:?}", req_user_id);
let feed: Vec<Feed> = feed::table
.filter(user_id.eq(req_user_id))
.load::<Feed>(&mut connection)
.unwrap();
// Create an asynchronous stream of Feed items
let feed_stream = futures::stream::iter(feed.clone().into_iter()).map(|feed| {
// Asynchronously fetch the feed_list for each feed
async move {
let feed_list = feeds::get_feed(&feed.url).await.unwrap();
let _feed_list = feeds::get_feed(&feed.url).await.unwrap();
// Process feed_list here
}
});