From fa4ccb1ffe0c605e22a5abadf332560cd3ba854c Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Fri, 12 Apr 2024 14:19:08 -0700 Subject: [PATCH] chore(api-helper): allow overriding rate limit config --- lib/api-helper/build/src/util.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/api-helper/build/src/util.rs b/lib/api-helper/build/src/util.rs index caaab2d17b..a595e1a707 100644 --- a/lib/api-helper/build/src/util.rs +++ b/lib/api-helper/build/src/util.rs @@ -1,4 +1,5 @@ use regex::Regex; +use rivet_cache::RateLimitConfig; use std::{str::FromStr, time::Duration}; use global_error::prelude::*; @@ -283,9 +284,16 @@ pub fn as_auth_expired(res: GlobalResult) -> GlobalResult { pub async fn basic_rate_limit( rate_limit_ctx: crate::auth::AuthRateLimitCtx<'_>, ) -> GlobalResult<()> { - if let Some(remote_address) = rate_limit_ctx.remote_address { - let config = rate_limit_ctx.rate_limit_config; + basic_rate_limit_with_config(rate_limit_ctx, None).await +} + +pub async fn basic_rate_limit_with_config( + rate_limit_ctx: crate::auth::AuthRateLimitCtx<'_>, + config: Option, +) -> GlobalResult<()> { + let config = config.unwrap_or(rate_limit_ctx.rate_limit_config); + if let Some(remote_address) = rate_limit_ctx.remote_address { // Trigger rate limit let rate_limit_key = config.key.to_owned(); let rate_limit_results = rate_limit_ctx