Skip to content

Commit

Permalink
Merge pull request #208 from edx/robrap/TNL-5115
Browse files Browse the repository at this point in the history
TNL-5115: Remove sort order from cs_comment_service
  • Loading branch information
robrap committed Sep 15, 2016
2 parents bb116a1 + d64a211 commit 5ae88da
Show file tree
Hide file tree
Showing 9 changed files with 70 additions and 148 deletions.
1 change: 0 additions & 1 deletion api/comment_threads.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
value_to_boolean(params["unread"]),
value_to_boolean(params["unanswered"]),
params["sort_key"],
params["sort_order"],
params["page"],
params["per_page"]
).to_json
Expand Down
1 change: 0 additions & 1 deletion api/commentables.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
value_to_boolean(params["unread"]),
value_to_boolean(params["unanswered"]),
params["sort_key"],
params["sort_order"],
params["page"],
params["per_page"],
params["context"] ? params["context"] : :course
Expand Down
1 change: 0 additions & 1 deletion api/notifications_and_subscriptions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
value_to_boolean(params["unread"]),
value_to_boolean(params["unanswered"]),
params["sort_key"],
params["sort_order"],
params["page"],
params["per_page"]
).to_json
Expand Down
1 change: 0 additions & 1 deletion api/search.rb
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@
value_to_boolean(local_params["unread"]),
value_to_boolean(local_params["unanswered"]),
local_params["sort_key"],
local_params["sort_order"],
local_params["page"],
local_params["per_page"],
context
Expand Down
16 changes: 5 additions & 11 deletions lib/helpers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@ def handle_threads_query(
filter_unread,
filter_unanswered,
sort_key,
sort_order,
page,
per_page,
context=:course
Expand Down Expand Up @@ -175,7 +174,7 @@ def handle_threads_query(
end
end

sort_criteria = get_sort_criteria(sort_key, sort_order)
sort_criteria = get_sort_criteria(sort_key)
if not sort_criteria
{}
else
Expand Down Expand Up @@ -240,24 +239,19 @@ def handle_threads_query(

# Given query params, return sort criteria appropriate for passing to the
# order_by function of a Mongoid query. Returns nil if params are not valid.
def get_sort_criteria(sort_key, sort_order)
def get_sort_criteria(sort_key)
sort_key_mapper = {
"date" => :created_at,
"activity" => :last_activity_at,
"votes" => :"votes.point",
"comments" => :comment_count,
}

sort_order_mapper = {
"desc" => :desc,
"asc" => :asc,
}

sort_key = sort_key_mapper[params["sort_key"] || "date"]
sort_order = sort_order_mapper[params["sort_order"] || "desc"]

if sort_key && sort_order
sort_criteria = [[:pinned, :desc], [sort_key, sort_order]]
if sort_key
# only sort order of :desc is supported. support for :asc would require new indices.
sort_criteria = [[:pinned, :desc], [sort_key, :desc]]
if ![:created_at, :last_activity_at].include? sort_key
sort_criteria << [:created_at, :desc]
end
Expand Down
5 changes: 2 additions & 3 deletions lib/tasks/benchmark.rake
Original file line number Diff line number Diff line change
Expand Up @@ -76,19 +76,18 @@ namespace :benchmark do

Benchmark.bm(31) do |x|
sort_keys = %w[date activity votes comments]
sort_order = "desc"

x.report("querying threads in a course") do

(1..COURSE_THREAD_QUERY).each do |seed|
query_params = { course_id: "1", sort_key: sort_keys[seed % 4], sort_order: sort_order, page: seed % 5 + 1, per_page: 5 }
query_params = { course_id: "1", sort_key: sort_keys[seed % 4], page: seed % 5 + 1, per_page: 5 }
RestClient.get "#{PREFIX}/threads", params: query_params
end
end
x.report("searching threads in a course") do

(1..COURSE_THREAD_QUERY).each do |seed|
query_params = { course_id: "1", text: "token#{seed % 10} token#{(seed * seed) % 10}", sort_key: sort_keys[seed % 4], sort_order: sort_order, page: seed % 5 + 1, per_page: 5 }
query_params = { course_id: "1", text: "token#{seed % 10} token#{(seed * seed) % 10}", sort_key: sort_keys[seed % 4], page: seed % 5 + 1, per_page: 5 }
RestClient.get "#{PREFIX}/search/threads", params: query_params
end
end
Expand Down
3 changes: 1 addition & 2 deletions lib/tasks/deep_search.rake
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,14 @@ namespace :deep_search do
end

sort_keys = %w[date activity votes comments]
sort_order = "desc"

#set the sinatra env to test to avoid 401'ing
set :environment, :test

start_time = Time.now
puts "Starting test at #{start_time}"
1000.times do |i|
query_params = { course_id: "1", sort_key: sort_keys.sample, sort_order: sort_order, page: 1, per_page: 5, text: bodies.sample }
query_params = { course_id: "1", sort_key: sort_keys.sample, page: 1, per_page: 5, text: bodies.sample }
RestClient.get "#{PREFIX}/threads", params: query_params
end
end_time = Time.now
Expand Down

0 comments on commit 5ae88da

Please sign in to comment.