Files
rss-reader/src/json_serialization/articles.rs
T

25 lines
714 B
Rust
Executable File

use actix_web::http::StatusCode;
use actix_web::{HttpResponse, Responder};
use serde::Serialize;
use crate::reader::structs::feed::FeedAggregate;
#[derive(Serialize)]
pub struct Articles {
pub feeds: Vec<FeedAggregate>,
}
impl Responder for Articles {
type Body = String;
fn respond_to(self, _req: &actix_web::HttpRequest) -> actix_web::HttpResponse<Self::Body> {
match serde_json::to_string(&self) {
Ok(body) => HttpResponse::with_body(StatusCode::OK, body),
Err(err) => {
log::error!("Failed to serialize response: {}", err);
HttpResponse::with_body(StatusCode::INTERNAL_SERVER_ERROR, String::new())
}
}
}
}