From e1ff351062841a8c5089025bfa8396b37ff1b327 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 21 Jan 2025 18:21:13 +0530 Subject: [PATCH] feat: enforce limit in document parsing --- .../captain/tools/simple_page_crawl_parser_job.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/enterprise/app/jobs/captain/tools/simple_page_crawl_parser_job.rb b/enterprise/app/jobs/captain/tools/simple_page_crawl_parser_job.rb index fa658dd80..ccf34adf2 100644 --- a/enterprise/app/jobs/captain/tools/simple_page_crawl_parser_job.rb +++ b/enterprise/app/jobs/captain/tools/simple_page_crawl_parser_job.rb @@ -3,6 +3,13 @@ class Captain::Tools::SimplePageCrawlParserJob < ApplicationJob def perform(assistant_id:, page_link:) assistant = Captain::Assistant.find(assistant_id) + account = assistant.account + + if limit_exceeded?(account) + Rails.logger.info("Document limit exceeded for #{assistant_id}") + return + end + crawler = Captain::Tools::SimplePageCrawlService.new(page_link) page_title = crawler.page_title || '' @@ -18,4 +25,11 @@ class Captain::Tools::SimplePageCrawlParserJob < ApplicationJob rescue StandardError => e raise "Failed to parse data: #{page_link} #{e.message}" end + + private + + def limit_exceeded?(account) + limits = account.usage_limits[:captain][:documents] + limits[:current_available].negative? || limits[:current_available].zero? + end end