mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-26 20:15:07 +08:00
error codes for core
This commit is contained in:
parent
0e20ac28e5
commit
9c58ca7ce5
@ -36,8 +36,27 @@ pub enum Error {
|
|||||||
|
|
||||||
impl ErrorCode for Error {
|
impl ErrorCode for Error {
|
||||||
fn error_code(&self) -> Code {
|
fn error_code(&self) -> Code {
|
||||||
//TODO populate codes
|
use Error::*;
|
||||||
Code::Internal
|
|
||||||
|
match self {
|
||||||
|
FacetError(_) => Code::Facet,
|
||||||
|
FilterParseError(_) => Code::Filter,
|
||||||
|
UnsupportedOperation(_) => Code::BadRequest,
|
||||||
|
IndexAlreadyExists => Code::IndexAlreadyExists,
|
||||||
|
MissingPrimaryKey => Code::InvalidState,
|
||||||
|
MissingDocumentId => Code::MissingDocumentId,
|
||||||
|
MaxFieldsLimitExceeded => Code::MaxFieldsLimitExceeded,
|
||||||
|
Schema(s) => s.error_code(),
|
||||||
|
WordIndexMissing
|
||||||
|
| SchemaMissing => Code::InvalidState,
|
||||||
|
Heed(_)
|
||||||
|
| Fst(_)
|
||||||
|
| SerdeJson(_)
|
||||||
|
| Bincode(_)
|
||||||
|
| Serializer(_)
|
||||||
|
| Deserializer(_)
|
||||||
|
| Io(_) => Code::Internal,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,19 +26,33 @@ impl fmt::Display for ErrorType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub enum Code {
|
pub enum Code {
|
||||||
|
// index related error
|
||||||
|
CreateIndex,
|
||||||
|
IndexAlreadyExists,
|
||||||
|
IndexNotFound,
|
||||||
|
InvalidIndexUid,
|
||||||
|
OpenIndex,
|
||||||
|
|
||||||
|
// invalid state error
|
||||||
|
InvalidState,
|
||||||
|
MissingPrimaryKey,
|
||||||
|
|
||||||
|
// invalid documents FIXME make one error code?
|
||||||
|
MissingDocumentId,
|
||||||
|
MaxFieldsLimitExceeded,
|
||||||
|
|
||||||
|
Filter,
|
||||||
|
Facet,
|
||||||
|
|
||||||
BadParameter,
|
BadParameter,
|
||||||
BadRequest,
|
BadRequest,
|
||||||
CreateIndex,
|
|
||||||
DocumentNotFound,
|
DocumentNotFound,
|
||||||
IndexNotFound,
|
|
||||||
Internal,
|
Internal,
|
||||||
InvalidIndexUid,
|
|
||||||
InvalidToken,
|
InvalidToken,
|
||||||
Maintenance,
|
Maintenance,
|
||||||
MissingAuthorizationHeader,
|
MissingAuthorizationHeader,
|
||||||
MissingHeader,
|
MissingHeader,
|
||||||
NotFound,
|
NotFound,
|
||||||
OpenIndex,
|
|
||||||
RetrieveDocument,
|
RetrieveDocument,
|
||||||
SearchDocuments,
|
SearchDocuments,
|
||||||
PayloadTooLarge,
|
PayloadTooLarge,
|
||||||
@ -53,20 +67,35 @@ impl Code {
|
|||||||
use Code::*;
|
use Code::*;
|
||||||
|
|
||||||
match self {
|
match self {
|
||||||
|
// index related errors
|
||||||
|
CreateIndex => ErrCode::invalid("create_index", StatusCode::BAD_REQUEST),
|
||||||
|
IndexAlreadyExists => ErrCode::invalid("existing_index", StatusCode::BAD_REQUEST),
|
||||||
|
IndexNotFound => ErrCode::invalid("index_not_found", StatusCode::BAD_REQUEST),
|
||||||
|
InvalidIndexUid => ErrCode::invalid("invalid_index_uid", StatusCode::BAD_REQUEST),
|
||||||
|
OpenIndex => ErrCode::internal("open_index", StatusCode::INTERNAL_SERVER_ERROR),
|
||||||
|
|
||||||
|
// invalid state error
|
||||||
|
InvalidState => ErrCode::internal("invalid_state", StatusCode::INTERNAL_SERVER_ERROR),
|
||||||
|
// FIXME probably not an internal statuscode there
|
||||||
|
MissingPrimaryKey => ErrCode::internal("MissingPrimaryKey", StatusCode::INTERNAL_SERVER_ERROR),
|
||||||
|
|
||||||
|
// invalid document
|
||||||
|
MissingDocumentId => ErrCode::invalid("MissingDocumentId", StatusCode::BAD_REQUEST),
|
||||||
|
MaxFieldsLimitExceeded => ErrCode::invalid("max_field_limit_exceeded", StatusCode::BAD_REQUEST),
|
||||||
|
|
||||||
|
Filter => ErrCode::invalid("fitler", StatusCode::BAD_REQUEST),
|
||||||
|
Facet => ErrCode::invalid("fitler", StatusCode::BAD_REQUEST),
|
||||||
|
|
||||||
BadParameter => ErrCode::invalid("bad_parameter", StatusCode::BAD_REQUEST),
|
BadParameter => ErrCode::invalid("bad_parameter", StatusCode::BAD_REQUEST),
|
||||||
BadRequest => ErrCode::invalid("bad_request", StatusCode::BAD_REQUEST),
|
BadRequest => ErrCode::invalid("bad_request", StatusCode::BAD_REQUEST),
|
||||||
CreateIndex => ErrCode::invalid("create_index", StatusCode::BAD_REQUEST),
|
|
||||||
InvalidIndexUid => ErrCode::invalid("invalid_index_uid", StatusCode::BAD_REQUEST),
|
|
||||||
OpenIndex => ErrCode::invalid("open_index", StatusCode::BAD_REQUEST),
|
|
||||||
RetrieveDocument => ErrCode::invalid("retrieve_document", StatusCode::BAD_REQUEST),
|
RetrieveDocument => ErrCode::invalid("retrieve_document", StatusCode::BAD_REQUEST),
|
||||||
SearchDocuments => ErrCode::invalid("search_document", StatusCode::BAD_REQUEST),
|
SearchDocuments => ErrCode::invalid("search_document", StatusCode::BAD_REQUEST),
|
||||||
DocumentNotFound => ErrCode::invalid("document_not_found", StatusCode::BAD_REQUEST),
|
DocumentNotFound => ErrCode::invalid("document_not_found", StatusCode::BAD_REQUEST),
|
||||||
IndexNotFound => ErrCode::invalid("index_not_found", StatusCode::BAD_REQUEST),
|
|
||||||
NotFound => ErrCode::invalid("not_found", StatusCode::BAD_REQUEST),
|
NotFound => ErrCode::invalid("not_found", StatusCode::BAD_REQUEST),
|
||||||
InvalidToken => ErrCode::invalid("invalid_token", StatusCode::BAD_REQUEST),
|
InvalidToken => ErrCode::invalid("invalid_token", StatusCode::BAD_REQUEST),
|
||||||
MissingHeader => ErrCode::invalid("missing_header", StatusCode::BAD_REQUEST),
|
MissingHeader => ErrCode::invalid("missing_header", StatusCode::BAD_REQUEST),
|
||||||
MissingAuthorizationHeader => ErrCode::invalid("missing_authorization_header", StatusCode::BAD_REQUEST),
|
MissingAuthorizationHeader => ErrCode::invalid("missing_authorization_header", StatusCode::BAD_REQUEST),
|
||||||
Internal => ErrCode::invalid("internal", StatusCode::BAD_REQUEST),
|
Internal => ErrCode::internal("internal", StatusCode::BAD_REQUEST),
|
||||||
Maintenance => ErrCode::invalid("maintenance", StatusCode::BAD_REQUEST),
|
Maintenance => ErrCode::invalid("maintenance", StatusCode::BAD_REQUEST),
|
||||||
PayloadTooLarge => ErrCode::invalid("payload_too_large", StatusCode::BAD_REQUEST),
|
PayloadTooLarge => ErrCode::invalid("payload_too_large", StatusCode::BAD_REQUEST),
|
||||||
UnsupportedMediaType => ErrCode::invalid("unsupported_media_type", StatusCode::BAD_REQUEST),
|
UnsupportedMediaType => ErrCode::invalid("unsupported_media_type", StatusCode::BAD_REQUEST),
|
||||||
|
Loading…
Reference in New Issue
Block a user