From 97be4e961b8ea2d92419f23f290ab676c2f8ff64 Mon Sep 17 00:00:00 2001 From: Jonas Platte <158304798+svix-jplatte@users.noreply.github.com> Date: Thu, 16 May 2024 15:43:33 +0200 Subject: [PATCH] server: Simplify short-circuiting logic for Option::None (#1318) Using let-else in most cases, the questionmark operator elsewhere. --- .../src/core/operational_webhooks.rs | 5 +---- server/svix-server/src/db/models/endpoint.rs | 7 +++---- .../src/v1/endpoints/endpoint/mod.rs | 21 +++++++------------ server/svix-server/src/worker.rs | 11 ++++------ 4 files changed, 16 insertions(+), 28 deletions(-) diff --git a/server/svix-server/src/core/operational_webhooks.rs b/server/svix-server/src/core/operational_webhooks.rs index 227558873..bf326fe4f 100644 --- a/server/svix-server/src/core/operational_webhooks.rs +++ b/server/svix-server/src/core/operational_webhooks.rs @@ -125,10 +125,7 @@ impl OperationalWebhookSenderInner { recipient_org_id: &OrganizationId, payload: OperationalWebhook, ) -> Result<()> { - let url = match self.url.as_ref() { - Some(url) => url, - None => return Ok(()), - }; + let Some(url) = &self.url else { return Ok(()) }; let op_webhook_token = generate_management_token(&self.signing_config).map_err(Error::generic)?; diff --git a/server/svix-server/src/db/models/endpoint.rs b/server/svix-server/src/db/models/endpoint.rs index 390d784dd..0c44aece9 100644 --- a/server/svix-server/src/db/models/endpoint.rs +++ b/server/svix-server/src/db/models/endpoint.rs @@ -101,13 +101,12 @@ impl ActiveModel { app_id: ApplicationId, endp_id: EndpointIdOrUid, ) -> error::Result> { - let (endp, metadata) = match Entity::secure_find_by_id_or_uid(app_id, endp_id) + let Some((endp, metadata)) = Entity::secure_find_by_id_or_uid(app_id, endp_id) .find_also_related(endpointmetadata::Entity) .one(db) .await? - { - Some(models) => models, - None => return Ok(None), + else { + return Ok(None); }; let metadata = metadata diff --git a/server/svix-server/src/v1/endpoints/endpoint/mod.rs b/server/svix-server/src/v1/endpoints/endpoint/mod.rs index a5999d202..403ab1c91 100644 --- a/server/svix-server/src/v1/endpoints/endpoint/mod.rs +++ b/server/svix-server/src/v1/endpoints/endpoint/mod.rs @@ -779,21 +779,16 @@ async fn send_example( .ok_or_else(|| HttpError::not_found(None, None))?; let example = event_type.schemas.and_then(|schema| { - schema - .example() - .and_then(|ex| serde_json::to_string(ex).ok()) + let ex = schema.example()?; + serde_json::to_string(ex).ok() }); - match example { - Some(example) => example, - None => { - return Err(HttpError::bad_request( - Some("invalid_scheme".to_owned()), - Some("Unable to generate example message from event-type schema".to_owned()), - ) - .into()); - } - } + example.ok_or_else(|| { + HttpError::bad_request( + Some("invalid_scheme".to_owned()), + Some("Unable to generate example message from event-type schema".to_owned()), + ) + })? }; let msg_in = MessageIn { diff --git a/server/svix-server/src/worker.rs b/server/svix-server/src/worker.rs index 422458651..10390fa44 100644 --- a/server/svix-server/src/worker.rs +++ b/server/svix-server/src/worker.rs @@ -780,7 +780,7 @@ async fn process_queue_task_inner( return Ok(()); }; - let create_message_app = match CreateMessageApp::layered_fetch( + let Some(create_message_app) = CreateMessageApp::layered_fetch( cache, db, None, @@ -789,12 +789,9 @@ async fn process_queue_task_inner( Duration::from_secs(30), ) .await? - { - Some(create_message_app) => create_message_app, - None => { - tracing::info!("Application doesn't exist: {}", &msg.app_id); - return Ok(()); - } + else { + tracing::info!("Application doesn't exist: {}", &msg.app_id); + return Ok(()); }; let endpoints: Vec = create_message_app