don't return raw http responses

This commit is contained in:
Brandon Thomas committed 2024-08-27 17:39:19 -04:00
1 parent 56ac11801d
commit 63a4285830
4 files changed
+17 -43

No files matched your search

@@ -5,7 +5,7 @@ use std::sync::Arc;
use actix_web::{HttpMessage, HttpRequest, HttpResponse, web};
use actix_web::error::ResponseError;
use actix_web::http::StatusCode;
use actix_web::web::Path;
use actix_web::web::{Json, Path};
use actix_web_lab::extract::Query;
use chrono::{DateTime, Utc};
use futures_old_for_limiter::future::result;
@@ -250,8 +250,8 @@ impl fmt::Display for BatchGetMediaFilesError {
pub async fn batch_get_media_files_handler(
http_request: HttpRequest,
query: Query<BatchGetMediaFilesQueryParams>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, BatchGetMediaFilesError>
{
server_state: web::Data<Arc<ServerState>>
) -> Result<Json<BatchGetMediaFilesSuccessResponse>, BatchGetMediaFilesError> {
let maybe_user_session = server_state
.session_checker
.maybe_get_user_session(&http_request, &server_state.mysql_pool)
@@ -392,15 +392,8 @@ pub async fn batch_get_media_files_handler(
})
.collect();
let response = BatchGetMediaFilesSuccessResponse {
Ok(Json(BatchGetMediaFilesSuccessResponse {
success: true,
media_files,
};
let body = serde_json::to_string(&response)
.map_err(|e| BatchGetMediaFilesError::ServerError)?;
Ok(HttpResponse::Ok()
.content_type("application/json")
.body(body))
}))
}
@@ -4,7 +4,7 @@ use std::sync::Arc;
use actix_web::{HttpMessage, HttpRequest, HttpResponse, web};
use actix_web::error::ResponseError;
use actix_web::http::{StatusCode, Uri};
use actix_web::web::Path;
use actix_web::web::{Json, Path};
use chrono::{DateTime, Utc};
use log::warn;
use url::Url;
@@ -245,8 +245,8 @@ impl fmt::Display for GetMediaFileError {
pub async fn get_media_file_handler(
http_request: HttpRequest,
path: Path<GetMediaFilePathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, GetMediaFileError>
{
server_state: web::Data<Arc<ServerState>>
) -> Result<Json<GetMediaFileSuccessResponse>, GetMediaFileError> {
let media_file_token = path.into_inner().token;
let maybe_user_session = server_state
@@ -280,12 +280,7 @@ pub async fn get_media_file_handler(
modern_media_file_lookup(&media_file_token, show_deleted_results, &server_state).await?
};
let body = serde_json::to_string(&response)
.map_err(|e| GetMediaFileError::ServerError)?;
Ok(HttpResponse::Ok()
.content_type("application/json")
.body(body))
Ok(Json(response))
}
async fn modern_media_file_lookup(
@@ -3,7 +3,7 @@ use std::sync::Arc;
use actix_web::{HttpMessage, HttpRequest, HttpResponse, web};
use actix_web::error::ResponseError;
use actix_web::http::StatusCode;
use actix_web::web::Query;
use actix_web::web::{Json, Query};
use chrono::{DateTime, Utc};
use log::warn;
use utoipa::{IntoParams, ToSchema};
@@ -190,7 +190,7 @@ pub async fn search_featured_media_files_handler(
http_request: HttpRequest,
query: Query<SearchFeaturedMediaFilesQueryParams>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, SearchFeaturedMediaFilesError>
) -> Result<Json<SearchFeaturedMediaFilesSuccessResponse>, SearchFeaturedMediaFilesError>
{
let mut maybe_filter_media_types = get_scoped_media_types(query.filter_media_type.as_deref());
let mut maybe_filter_media_classes = get_scoped_media_classes(query.filter_media_classes.as_deref());
@@ -273,15 +273,8 @@ pub async fn search_featured_media_files_handler(
})
.collect::<Vec<_>>();
let response = SearchFeaturedMediaFilesSuccessResponse {
Ok(Json(SearchFeaturedMediaFilesSuccessResponse {
success: true,
results,
};
let body = serde_json::to_string(&response)
.map_err(|e| SearchFeaturedMediaFilesError::ServerError)?;
Ok(HttpResponse::Ok()
.content_type("application/json")
.body(body))
}))
}
@@ -3,7 +3,7 @@ use std::sync::Arc;
use actix_web::{HttpMessage, HttpRequest, HttpResponse, web};
use actix_web::error::ResponseError;
use actix_web::http::StatusCode;
use actix_web::web::Query;
use actix_web::web::{Json, Query};
use chrono::{DateTime, Utc};
use log::warn;
use url::Url;
@@ -197,7 +197,7 @@ pub async fn search_session_media_files_handler(
http_request: HttpRequest,
query: Query<SearchMediaFilesQueryParams>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, SearchMediaFilesError>
) -> Result<Json<SearchMediaFilesSuccessResponse>, SearchMediaFilesError>
{
// NB(bt,2024-07-01): This isn't great. Though we HMAC our cookies, this could
// result in bad situations where we don't invalidate sessions, etc. We're only
@@ -303,15 +303,8 @@ pub async fn search_session_media_files_handler(
})
.collect::<Vec<_>>();
let response = SearchMediaFilesSuccessResponse {
Ok(Json(SearchMediaFilesSuccessResponse {
success: true,
results,
};
let body = serde_json::to_string(&response)
.map_err(|e| SearchMediaFilesError::ServerError)?;
Ok(HttpResponse::Ok()
.content_type("application/json")
.body(body))
}))
}