File tree 2 files changed +40
-9
lines changed
app/models/discourse_data_explorer
2 files changed +40
-9
lines changed Original file line number Diff line number Diff line change 1
1
# frozen_string_literal: true
2
2
3
3
module ::DiscourseDataExplorer
4
+ class QueryFinder
5
+ def self . find ( id )
6
+ default_query = Queries . default [ id . to_s ]
7
+ return raise ActiveRecord ::RecordNotFound unless default_query
8
+
9
+ query = Query . find_by ( id : id ) || Query . new
10
+ query . attributes = default_query
11
+ query . user_id = Discourse ::SYSTEM_USER_ID . to_s
12
+ query
13
+ end
14
+ end
15
+
4
16
class Query < ActiveRecord ::Base
5
17
self . table_name = "data_explorer_queries"
6
18
@@ -35,15 +47,17 @@ def slug
35
47
end
36
48
37
49
def self . find ( id )
38
- if id . to_i < 0
39
- default_query = Queries . default [ id . to_s ]
40
- return raise ActiveRecord ::RecordNotFound unless default_query
41
- query = Query . find_by ( id : id ) || Query . new
42
- query . attributes = default_query
43
- query . user_id = Discourse ::SYSTEM_USER_ID . to_s
44
- query
45
- else
46
- super
50
+ return super if id . to_i >= 0
51
+ QueryFinder . find ( id )
52
+ end
53
+
54
+ private
55
+
56
+ # for `Query.unscoped.find`
57
+ class ActiveRecord_Relation
58
+ def find ( id )
59
+ return super if id . to_i >= 0
60
+ QueryFinder . find ( id )
47
61
end
48
62
end
49
63
end
Original file line number Diff line number Diff line change
1
+ # frozen_string_literal: true
2
+
3
+ RSpec . describe DiscourseDataExplorer ::Query do
4
+ before { SiteSetting . data_explorer_enabled = true }
5
+
6
+ describe ".find" do
7
+ it "returns default queries" do
8
+ expect ( DiscourseDataExplorer ::Query . find ( -1 ) ) . to be_present
9
+ end
10
+ end
11
+
12
+ describe "unscoped .find" do
13
+ it "returns default queries" do
14
+ expect ( DiscourseDataExplorer ::Query . unscoped . find ( -1 ) ) . to be_present
15
+ end
16
+ end
17
+ end
You can’t perform that action at this time.
0 commit comments