mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-23 02:27:40 +08:00
Fix missing_swap_indexes error code and handling of expires_at param...
of create api key route
This commit is contained in:
parent
766dd830ae
commit
49ddaaef49
@ -15,7 +15,8 @@ use serde_cs::vec::CS;
|
|||||||
use crate::star_or::StarOr;
|
use crate::star_or::StarOr;
|
||||||
|
|
||||||
use self::deserr_codes::{
|
use self::deserr_codes::{
|
||||||
MissingApiKeyActions, MissingApiKeyExpiresAt, MissingApiKeyIndexes, MissingIndexUid, InvalidSwapIndexes, MissingSwapIndexesIndexes,
|
InvalidSwapIndexes, MissingApiKeyActions, MissingApiKeyExpiresAt, MissingApiKeyIndexes,
|
||||||
|
MissingIndexUid, MissingSwapIndexes,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
|
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
|
||||||
@ -280,7 +281,7 @@ MissingDocumentId , invalid , BAD_REQUEST ;
|
|||||||
MissingIndexUid , invalid , BAD_REQUEST ;
|
MissingIndexUid , invalid , BAD_REQUEST ;
|
||||||
MissingMasterKey , authentication, UNAUTHORIZED ;
|
MissingMasterKey , authentication, UNAUTHORIZED ;
|
||||||
MissingPayload , invalid , BAD_REQUEST ;
|
MissingPayload , invalid , BAD_REQUEST ;
|
||||||
MissingSwapIndexesIndexes , invalid , BAD_REQUEST ;
|
MissingSwapIndexes , invalid , BAD_REQUEST ;
|
||||||
MissingTaskFilters , invalid , BAD_REQUEST ;
|
MissingTaskFilters , invalid , BAD_REQUEST ;
|
||||||
NoSpaceLeftOnDevice , system , UNPROCESSABLE_ENTITY;
|
NoSpaceLeftOnDevice , system , UNPROCESSABLE_ENTITY;
|
||||||
PayloadTooLarge , invalid , PAYLOAD_TOO_LARGE ;
|
PayloadTooLarge , invalid , PAYLOAD_TOO_LARGE ;
|
||||||
@ -516,7 +517,7 @@ impl DeserrJsonError<InvalidSwapIndexes> {
|
|||||||
deserr::ErrorKind::MissingField { field },
|
deserr::ErrorKind::MissingField { field },
|
||||||
location,
|
location,
|
||||||
));
|
));
|
||||||
Self { msg: x.msg, code: MissingSwapIndexesIndexes.error_code(), _phantom: PhantomData }
|
Self { msg: x.msg, code: MissingSwapIndexes.error_code(), _phantom: PhantomData }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ pub struct CreateApiKey {
|
|||||||
pub actions: Vec<Action>,
|
pub actions: Vec<Action>,
|
||||||
#[deserr(error = DeserrJsonError<InvalidApiKeyIndexes>, missing_field_error = DeserrJsonError::missing_api_key_indexes)]
|
#[deserr(error = DeserrJsonError<InvalidApiKeyIndexes>, missing_field_error = DeserrJsonError::missing_api_key_indexes)]
|
||||||
pub indexes: Vec<StarOr<IndexUid>>,
|
pub indexes: Vec<StarOr<IndexUid>>,
|
||||||
#[deserr(error = DeserrJsonError<InvalidApiKeyExpiresAt>, from(&String) = parse_expiration_date -> TakeErrorMessage<ParseOffsetDateTimeError>, missing_field_error = DeserrJsonError::missing_api_key_expires_at)]
|
#[deserr(error = DeserrJsonError<InvalidApiKeyExpiresAt>, from(Option<String>) = parse_expiration_date -> TakeErrorMessage<ParseOffsetDateTimeError>, missing_field_error = DeserrJsonError::missing_api_key_expires_at)]
|
||||||
pub expires_at: Option<OffsetDateTime>,
|
pub expires_at: Option<OffsetDateTime>,
|
||||||
}
|
}
|
||||||
impl CreateApiKey {
|
impl CreateApiKey {
|
||||||
@ -159,36 +159,39 @@ impl Display for ParseOffsetDateTimeError {
|
|||||||
impl std::error::Error for ParseOffsetDateTimeError {}
|
impl std::error::Error for ParseOffsetDateTimeError {}
|
||||||
|
|
||||||
fn parse_expiration_date(
|
fn parse_expiration_date(
|
||||||
string: &str,
|
string: Option<String>,
|
||||||
) -> std::result::Result<Option<OffsetDateTime>, TakeErrorMessage<ParseOffsetDateTimeError>> {
|
) -> std::result::Result<Option<OffsetDateTime>, TakeErrorMessage<ParseOffsetDateTimeError>> {
|
||||||
let datetime = if let Ok(datetime) = OffsetDateTime::parse(string, &Rfc3339) {
|
let Some(string) = string else {
|
||||||
|
return Ok(None)
|
||||||
|
};
|
||||||
|
let datetime = if let Ok(datetime) = OffsetDateTime::parse(&string, &Rfc3339) {
|
||||||
datetime
|
datetime
|
||||||
} else if let Ok(primitive_datetime) = PrimitiveDateTime::parse(
|
} else if let Ok(primitive_datetime) = PrimitiveDateTime::parse(
|
||||||
string,
|
&string,
|
||||||
format_description!(
|
format_description!(
|
||||||
"[year repr:full base:calendar]-[month repr:numerical]-[day]T[hour]:[minute]:[second]"
|
"[year repr:full base:calendar]-[month repr:numerical]-[day]T[hour]:[minute]:[second]"
|
||||||
),
|
),
|
||||||
) {
|
) {
|
||||||
primitive_datetime.assume_utc()
|
primitive_datetime.assume_utc()
|
||||||
} else if let Ok(primitive_datetime) = PrimitiveDateTime::parse(
|
} else if let Ok(primitive_datetime) = PrimitiveDateTime::parse(
|
||||||
string,
|
&string,
|
||||||
format_description!(
|
format_description!(
|
||||||
"[year repr:full base:calendar]-[month repr:numerical]-[day] [hour]:[minute]:[second]"
|
"[year repr:full base:calendar]-[month repr:numerical]-[day] [hour]:[minute]:[second]"
|
||||||
),
|
),
|
||||||
) {
|
) {
|
||||||
primitive_datetime.assume_utc()
|
primitive_datetime.assume_utc()
|
||||||
} else if let Ok(date) = Date::parse(
|
} else if let Ok(date) = Date::parse(
|
||||||
string,
|
&string,
|
||||||
format_description!("[year repr:full base:calendar]-[month repr:numerical]-[day]"),
|
format_description!("[year repr:full base:calendar]-[month repr:numerical]-[day]"),
|
||||||
) {
|
) {
|
||||||
PrimitiveDateTime::new(date, time!(00:00)).assume_utc()
|
PrimitiveDateTime::new(date, time!(00:00)).assume_utc()
|
||||||
} else {
|
} else {
|
||||||
return Err(TakeErrorMessage(ParseOffsetDateTimeError(string.to_owned())));
|
return Err(TakeErrorMessage(ParseOffsetDateTimeError(string)));
|
||||||
};
|
};
|
||||||
if datetime > OffsetDateTime::now_utc() {
|
if datetime > OffsetDateTime::now_utc() {
|
||||||
Ok(Some(datetime))
|
Ok(Some(datetime))
|
||||||
} else {
|
} else {
|
||||||
Err(TakeErrorMessage(ParseOffsetDateTimeError(string.to_owned())))
|
Err(TakeErrorMessage(ParseOffsetDateTimeError(string)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user