backend, mark item as read
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
use crate::models::feed::rss_feed::Feed;
|
||||
use crate::schema::feed_item;
|
||||
use chrono::NaiveDateTime;
|
||||
use diesel::{Associations, Identifiable, Queryable};
|
||||
#[derive(Clone, Identifiable, Queryable, Associations)]
|
||||
use diesel::{Associations, Identifiable, Queryable, Selectable};
|
||||
#[derive(Clone, Identifiable, Selectable, Queryable, Associations)]
|
||||
#[diesel(belongs_to(Feed))]
|
||||
#[diesel(table_name=feed_item)]
|
||||
pub struct FeedItem {
|
||||
|
||||
+25
-2
@@ -1,8 +1,31 @@
|
||||
use crate::schema::feed_item::{id, read};
|
||||
use crate::{
|
||||
database::establish_connection, json_serialization::read_feed_item::ReadItem,
|
||||
models::feed_item::rss_feed_item::FeedItem, schema::feed_item,
|
||||
};
|
||||
use actix_web::{web, HttpRequest, HttpResponse, Responder};
|
||||
|
||||
use crate::json_serialization::read_feed_item::ReadItem;
|
||||
use diesel::RunQueryDsl;
|
||||
use diesel::{ExpressionMethods, QueryDsl};
|
||||
|
||||
pub async fn mark_read(_req: HttpRequest, path: web::Path<ReadItem>) -> impl Responder {
|
||||
let mut connection = establish_connection();
|
||||
log::info!("Id: {}", path.id);
|
||||
let feed_items: Vec<FeedItem> = feed_item::table
|
||||
.filter(id.eq(path.id))
|
||||
.load::<FeedItem>(&mut connection)
|
||||
.unwrap();
|
||||
|
||||
if feed_items.len() != 1 {
|
||||
return HttpResponse::NotFound();
|
||||
}
|
||||
|
||||
let feed_item: &FeedItem = feed_items.first().unwrap();
|
||||
|
||||
let result: Result<usize, diesel::result::Error> = diesel::update(feed_item)
|
||||
.set(read.eq(true))
|
||||
.execute(&mut connection);
|
||||
|
||||
log::info!("Mark as read: {:?}", result);
|
||||
|
||||
HttpResponse::Ok()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user