mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-31 07:56:28 +00:00 
			
		
		
		
	empty content type error
This commit is contained in:
		| @@ -83,6 +83,8 @@ pub enum Code { | ||||
|  | ||||
|     DumpAlreadyInProgress, | ||||
|     DumpProcessFailed, | ||||
|  | ||||
|     MissingContentType, | ||||
| } | ||||
|  | ||||
| impl Code { | ||||
| @@ -154,6 +156,7 @@ impl Code { | ||||
|             DumpProcessFailed => { | ||||
|                 ErrCode::internal("dump_process_failed", StatusCode::INTERNAL_SERVER_ERROR) | ||||
|             } | ||||
|             MissingContentType => ErrCode::invalid("missing_content_type", StatusCode::UNSUPPORTED_MEDIA_TYPE), | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -9,6 +9,20 @@ use aweb::error::{JsonPayloadError, QueryPayloadError}; | ||||
| use meilisearch_error::{Code, ErrorCode}; | ||||
| use serde::{Deserialize, Serialize}; | ||||
|  | ||||
| #[derive(Debug, thiserror::Error)] | ||||
| pub enum MeilisearchHttpError { | ||||
|     #[error("A Content-Type header is missing. Accepted values for the Content-Type header are: \"application/json\", \"application/x-ndjson\", \"test/csv\"")] | ||||
|     MissingContentType, | ||||
| } | ||||
|  | ||||
| impl ErrorCode for MeilisearchHttpError { | ||||
|     fn error_code(&self) -> Code { | ||||
|         match self { | ||||
|             MeilisearchHttpError::MissingContentType => Code::MissingContentType, | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[derive(Debug, Serialize, Deserialize, Clone)] | ||||
| #[serde(rename_all = "camelCase")] | ||||
| pub struct ResponseError { | ||||
|   | ||||
| @@ -10,7 +10,7 @@ use serde::Deserialize; | ||||
| use serde_json::Value; | ||||
| use tokio::sync::mpsc; | ||||
|  | ||||
| use crate::error::ResponseError; | ||||
| use crate::error::{MeilisearchHttpError, ResponseError}; | ||||
| use crate::extractors::authentication::{policies::*, GuardedData}; | ||||
| use crate::extractors::payload::Payload; | ||||
| use crate::routes::IndexParam; | ||||
| @@ -66,7 +66,7 @@ pub fn configure(cfg: &mut web::ServiceConfig) { | ||||
|             .route( | ||||
|                 web::post() | ||||
|                     .guard(empty_application_type) | ||||
|                     .to(HttpResponse::UnsupportedMediaType), | ||||
|                     .to(missing_content_type_error), | ||||
|             ) | ||||
|             .route(web::post().guard(guard_json).to(add_documents_json)) | ||||
|             .route(web::post().guard(guard_ndjson).to(add_documents_ndjson)) | ||||
| @@ -76,7 +76,7 @@ pub fn configure(cfg: &mut web::ServiceConfig) { | ||||
|             .route( | ||||
|                 web::put() | ||||
|                     .guard(empty_application_type) | ||||
|                     .to(HttpResponse::UnsupportedMediaType), | ||||
|                     .to(missing_content_type_error), | ||||
|             ) | ||||
|             .route(web::put().guard(guard_json).to(update_documents_json)) | ||||
|             .route(web::put().guard(guard_ndjson).to(update_documents_ndjson)) | ||||
| @@ -93,6 +93,10 @@ pub fn configure(cfg: &mut web::ServiceConfig) { | ||||
|     ); | ||||
| } | ||||
|  | ||||
| async fn missing_content_type_error() -> Result<HttpResponse, ResponseError> { | ||||
|     Err(MeilisearchHttpError::MissingContentType.into()) | ||||
| } | ||||
|  | ||||
| pub async fn get_document( | ||||
|     meilisearch: GuardedData<Public, MeiliSearch>, | ||||
|     path: web::Path<DocumentParam>, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user