Skip to content

Commit 5b01ac9

Browse files
committed
Return User objects instead of hashes
1 parent 1cd565e commit 5b01ac9

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

app/controllers/users_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,8 @@ def search_users
294294

295295
results = UserSearch.search term, topic_id
296296

297-
render :json => results
297+
render json: { users: results.as_json( only: [ :username, :name ],
298+
methods: :avatar_template ) }
298299
end
299300

300301
private

app/models/user_search.rb

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
class UserSearch
22

33
def self.search term, topic_id
4-
sql = sql term, topic_id
5-
results = User.exec_sql(sql, topic_id: topic_id, term_like: "#{term}%", term: term)
6-
results = results.map do |r|
7-
r["avatar_template"] = User.avatar_template(r["email"])
8-
r.delete("email")
9-
r
10-
end
4+
User.find_by_sql sql(term, topic_id)
115
end
126

7+
private
8+
139
def self.sql term, topic_id
1410
sql = "select username, name, email from users u "
1511
if topic_id
@@ -36,7 +32,12 @@ def self.sql term, topic_id
3632
end
3733

3834
sql << " case when last_seen_at is null then 0 else 1 end desc, last_seen_at desc, username asc limit(20)"
39-
sql
35+
36+
sanitize_sql_array(sql, topic_id: topic_id, term_like: "#{term}%", term: term)
37+
end
38+
39+
def self.sanitize_sql_array *args
40+
ActiveRecord::Base.send(:sanitize_sql_array, args)
4041
end
4142

4243
end

0 commit comments

Comments
 (0)