Skip to content

Commit f5efb45

Browse files
committed
chore(router): instantiate repository once per resource request
1 parent fff0e70 commit f5efb45

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

lib/tiny_admin/router.rb

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,13 @@ def setup_page_route(req, slug, page_data)
7676

7777
def setup_resource_routes(req, slug, options:)
7878
req.on slug do
79-
setup_collection_routes(req, slug, options: options)
80-
setup_member_routes(req, slug, options: options)
79+
repository = options[:repository].new(options[:model])
80+
setup_collection_routes(req, slug, options: options, repository: repository)
81+
setup_member_routes(req, slug, options: options, repository: repository)
8182
end
8283
end
8384

84-
def setup_collection_routes(req, slug, options:)
85-
repository = options[:repository].new(options[:model])
85+
def setup_collection_routes(req, slug, options:, repository:)
8686
action_options = options[:index] || {}
8787

8888
# Custom actions
@@ -112,8 +112,7 @@ def setup_collection_routes(req, slug, options:)
112112
end
113113
end
114114

115-
def setup_member_routes(req, slug, options:)
116-
repository = options[:repository].new(options[:model])
115+
def setup_member_routes(req, slug, options:, repository:)
117116
action_options = (options[:show] || {}).merge(record_not_found_page: TinyAdmin.settings.record_not_found)
118117

119118
req.on String do |reference|

sig/tiny_admin/router.rbs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ module TinyAdmin
1010

1111
def root_route: (untyped) -> void
1212

13-
def setup_collection_routes: (untyped, String, options: Hash[Symbol, untyped]) -> void
13+
def setup_collection_routes: (untyped, String, options: Hash[Symbol, untyped], repository: untyped) -> void
1414

1515
def setup_custom_actions: (untyped, Array[Hash[Symbol, untyped]]?, options: Hash[Symbol, untyped], repository: untyped, slug: String, ?reference: untyped?) -> Hash[String, untyped]
1616

17-
def setup_member_routes: (untyped, String, Hash[Symbol, untyped]) -> void
17+
def parse_action_config: (untyped) -> [Class, Symbol]
18+
19+
def setup_member_routes: (untyped, String, options: Hash[Symbol, untyped], repository: untyped) -> void
1820

1921
def setup_page_route: (untyped, String, Hash[Symbol, untyped]) -> void
2022

0 commit comments

Comments
 (0)