2021-11-08 18:31:27 +01:00
use std ::error ::Error ;
use meilisearch_error ::ErrorCode ;
use meilisearch_error ::{ internal_error , Code } ;
use serde_json ::Value ;
pub type Result < T > = std ::result ::Result < T , AuthControllerError > ;
#[ derive(Debug, thiserror::Error) ]
pub enum AuthControllerError {
#[ error( " `{0}` field is mandatory. " ) ]
MissingParameter ( & 'static str ) ,
2022-02-14 15:32:41 +01:00
#[ error( " `actions` field value `{0}` is invalid. It should be an array of string representing action names. " ) ]
2021-11-08 18:31:27 +01:00
InvalidApiKeyActions ( Value ) ,
2022-02-14 15:32:41 +01:00
#[ error( " `indexes` field value `{0}` is invalid. It should be an array of string representing index names. " ) ]
2021-11-08 18:31:27 +01:00
InvalidApiKeyIndexes ( Value ) ,
2022-02-14 15:32:41 +01:00
#[ error( " `expiresAt` field value `{0}` is invalid. It should follow the RFC 3339 format to represents a date or datetime in the future or specified as a null value. e.g. 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM:SS'. " ) ]
2021-11-08 18:31:27 +01:00
InvalidApiKeyExpiresAt ( Value ) ,
2022-02-14 15:32:41 +01:00
#[ error( " `description` field value `{0}` is invalid. It should be a string or specified as a null value. " ) ]
2021-11-08 18:31:27 +01:00
InvalidApiKeyDescription ( Value ) ,
#[ error( " API key `{0}` not found. " ) ]
ApiKeyNotFound ( String ) ,
#[ error( " Internal error: {0} " ) ]
Internal ( Box < dyn Error + Send + Sync + 'static > ) ,
}
2021-12-06 15:45:41 +01:00
internal_error! (
2022-03-16 13:45:58 +01:00
AuthControllerError : milli ::heed ::Error ,
2021-12-06 15:45:41 +01:00
std ::io ::Error ,
serde_json ::Error ,
std ::str ::Utf8Error
) ;
2021-11-08 18:31:27 +01:00
impl ErrorCode for AuthControllerError {
fn error_code ( & self ) -> Code {
match self {
Self ::MissingParameter ( _ ) = > Code ::MissingParameter ,
Self ::InvalidApiKeyActions ( _ ) = > Code ::InvalidApiKeyActions ,
Self ::InvalidApiKeyIndexes ( _ ) = > Code ::InvalidApiKeyIndexes ,
Self ::InvalidApiKeyExpiresAt ( _ ) = > Code ::InvalidApiKeyExpiresAt ,
Self ::InvalidApiKeyDescription ( _ ) = > Code ::InvalidApiKeyDescription ,
Self ::ApiKeyNotFound ( _ ) = > Code ::ApiKeyNotFound ,
Self ::Internal ( _ ) = > Code ::Internal ,
}
}
}