correct error on settings delete unexisting index

This commit is contained in:
mpostma 2021-03-11 22:33:31 +01:00
parent 30dd790884
commit 66b64c1f80
No known key found for this signature in database
GPG Key ID: CBC8A7C1D7A28C3A
3 changed files with 13 additions and 8 deletions

View File

@ -23,9 +23,10 @@ impl Data {
pub async fn update_settings(
&self,
index: String,
settings: Settings
settings: Settings,
create: bool,
) -> anyhow::Result<UpdateStatus> {
let update = self.index_controller.update_settings(index, settings).await?;
let update = self.index_controller.update_settings(index, settings, create).await?;
Ok(update.into())
}

View File

@ -129,8 +129,12 @@ impl IndexController {
Ok(status)
}
pub async fn update_settings(&self, index_uid: String, settings: Settings) -> anyhow::Result<UpdateStatus> {
let uuid = self.uuid_resolver.get_or_create(index_uid).await?;
pub async fn update_settings(&self, index_uid: String, settings: Settings, create: bool) -> anyhow::Result<UpdateStatus> {
let uuid = if create {
self.uuid_resolver.get_or_create(index_uid).await?
} else {
self.uuid_resolver.resolve(index_uid).await?
};
let meta = UpdateMeta::Settings(settings);
// Nothing so send, drop the sender right away, as not to block the update actor.
let (_, receiver) = mpsc::channel(1);

View File

@ -26,7 +26,7 @@ macro_rules! make_setting_route {
$attr: Some(None),
..Default::default()
};
match data.update_settings(index_uid.into_inner(), settings).await {
match data.update_settings(index_uid.into_inner(), settings, false).await {
Ok(update_status) => {
let json = serde_json::to_string(&update_status).unwrap();
Ok(HttpResponse::Ok().body(json))
@ -48,7 +48,7 @@ macro_rules! make_setting_route {
..Default::default()
};
match data.update_settings(index_uid.into_inner(), settings).await {
match data.update_settings(index_uid.into_inner(), settings, true).await {
Ok(update_status) => {
let json = serde_json::to_string(&update_status).unwrap();
Ok(HttpResponse::Ok().body(json))
@ -137,7 +137,7 @@ async fn update_all(
index_uid: web::Path<String>,
body: web::Json<Settings>,
) -> Result<HttpResponse, ResponseError> {
match data.update_settings(index_uid.into_inner(), body.into_inner()).await {
match data.update_settings(index_uid.into_inner(), body.into_inner(), true).await {
Ok(update_result) => {
let json = serde_json::to_string(&update_result).unwrap();
Ok(HttpResponse::Ok().body(json))
@ -170,7 +170,7 @@ async fn delete_all(
index_uid: web::Path<String>,
) -> Result<HttpResponse, ResponseError> {
let settings = Settings::cleared();
match data.update_settings(index_uid.into_inner(), settings).await {
match data.update_settings(index_uid.into_inner(), settings, false).await {
Ok(update_result) => {
let json = serde_json::to_string(&update_result).unwrap();
Ok(HttpResponse::Ok().body(json))