Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions config/initializers/tenanting/account_slug.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
module AccountSlug
PATTERN = /(\d{7,})/
FORMAT = "%07d"
PATTERN = /(\d+)/
PATH_INFO_MATCH = /\A(\/#{AccountSlug::PATTERN})/

class Extractor
Expand Down Expand Up @@ -40,7 +39,7 @@ def call(env)
end

def self.decode(slug) slug.to_i end
def self.encode(id) FORMAT % id end
def self.encode(id) id.to_s end
end

Rails.application.config.middleware.insert_after Rack::TempfileReaper, AccountSlug::Extractor
9 changes: 9 additions & 0 deletions test/middleware/account_slug_extractor_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ class AccountSlugExtractorTest < ActiveSupport::TestCase
assert_nil captured.fetch(:current_account)
end

test "encodes account IDs without zero-padding" do
assert_equal "1", AccountSlug.encode(1)
end

test "decodes both padded and non-padded slugs" do
assert_equal 123, AccountSlug.decode("123")
assert_equal 123, AccountSlug.decode("0000123")
end

private
def call_with_env(path, extra_env = {})
captured = {}
Expand Down