added anyhow, improve hamburger menu, improve dw articles
This commit is contained in:
+12
-9
@@ -1,3 +1,4 @@
|
||||
use crate::error::AppError;
|
||||
use crate::schema::feed_item::{id, read};
|
||||
use crate::{
|
||||
database::establish_connection, json_serialization::read_feed_item::ReadItem,
|
||||
@@ -7,27 +8,29 @@ use actix_web::{web, HttpRequest, HttpResponse, Responder};
|
||||
use diesel::RunQueryDsl;
|
||||
use diesel::{ExpressionMethods, QueryDsl};
|
||||
|
||||
pub async fn mark_read(_req: HttpRequest, path: web::Path<ReadItem>) -> impl Responder {
|
||||
pub async fn mark_read(
|
||||
_req: HttpRequest,
|
||||
path: web::Path<ReadItem>,
|
||||
) -> Result<impl Responder, AppError> {
|
||||
let mut connection = establish_connection();
|
||||
log::info!("Id: {}", path.id);
|
||||
let feed_items: Vec<FeedItem> = feed_item::table
|
||||
let mut feed_items: Vec<FeedItem> = feed_item::table
|
||||
.filter(id.eq(path.id))
|
||||
.load::<FeedItem>(&mut connection)
|
||||
.unwrap();
|
||||
.load::<FeedItem>(&mut connection)?;
|
||||
|
||||
if feed_items.len() != 1 {
|
||||
return HttpResponse::NotFound();
|
||||
return Ok(HttpResponse::NotFound().finish());
|
||||
}
|
||||
|
||||
let feed_item: &FeedItem = feed_items.first().unwrap();
|
||||
let feed_item: FeedItem = feed_items.remove(0);
|
||||
|
||||
let result: Result<usize, diesel::result::Error> = diesel::update(feed_item)
|
||||
let result = diesel::update(&feed_item)
|
||||
.set(read.eq(true))
|
||||
.execute(&mut connection);
|
||||
.execute(&mut connection)?;
|
||||
|
||||
log::info!("Mark as read: {:?}", result);
|
||||
|
||||
HttpResponse::Ok()
|
||||
Ok(HttpResponse::Ok().finish())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
Reference in New Issue
Block a user