Skip to content

Commit 0068cf4

Browse files
committed
refactor(user-find): move manipulation of user object into user_json file
1 parent dfd0a30 commit 0068cf4

File tree

2 files changed

+49
-55
lines changed

2 files changed

+49
-55
lines changed

lib/epochtalk_server_web/helpers/proxy_conversion.ex

Lines changed: 38 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -83,57 +83,44 @@ defmodule EpochtalkServerWeb.Helpers.ProxyConversion do
8383
end
8484

8585
def build_user(user_id) do
86-
user =
87-
from(u in "smf_members", where: u.id_member == ^user_id)
88-
|> join(:left, [u], a in "smf_attachments",
89-
on: u.id_member == a.id_member and a.attachmentType == 1
90-
)
91-
|> join(:left, [u], m in "smf_membergroups",
92-
on: u.id_group != 0 and u.id_group == m.id_group
93-
)
94-
|> join(:left, [u], g in "smf_membergroups",
95-
on: u.id_post_group == g.id_group
96-
)
97-
|> select([u, a, m, g], %{
98-
activity: u.activity,
99-
created_at: u.dateRegistered * 1000,
100-
dob: u.birthdate,
101-
gender: u.gender,
102-
id: u.id_member,
103-
language: nil,
104-
location: u.location,
105-
merit: u.merit,
106-
id_group: u.id_group,
107-
id_post_group: u.id_post_group,
108-
signature: u.signature,
109-
post_count: u.posts,
110-
name: u.realName,
111-
username: u.realName,
112-
title: u.usertitle,
113-
website: u.websiteUrl,
114-
last_login: u.lastLogin * 1000,
115-
show_online: u.showOnline,
116-
group_name: m.groupName,
117-
group_name_2: g.groupName,
118-
group_color: m.onlineColor,
119-
group_color_2: g.onlineColor,
120-
avatar:
121-
fragment(
122-
"if(? <>'',concat('https://bitcointalk.org/avatars/',?),ifnull(concat('https://bitcointalk.org/useravatars/',?),''))",
123-
u.avatar,
124-
u.avatar,
125-
a.filename
126-
)
127-
})
128-
|> SmfRepo.one()
129-
130-
user
131-
|> Map.put(:position, user.group_name || user.group_name_2)
132-
|> Map.put(:position_color, user.group_color || user.group_color_2)
133-
|> Map.delete(:group_name)
134-
|> Map.delete(:group_name_2)
135-
|> Map.delete(:group_color)
136-
|> Map.delete(:group_color_2)
86+
from(u in "smf_members", where: u.id_member == ^user_id)
87+
|> join(:left, [u], a in "smf_attachments",
88+
on: u.id_member == a.id_member and a.attachmentType == 1
89+
)
90+
|> join(:left, [u], m in "smf_membergroups", on: u.id_group != 0 and u.id_group == m.id_group)
91+
|> join(:left, [u], g in "smf_membergroups", on: u.id_post_group == g.id_group)
92+
|> select([u, a, m, g], %{
93+
activity: u.activity,
94+
created_at: u.dateRegistered * 1000,
95+
dob: u.birthdate,
96+
gender: u.gender,
97+
id: u.id_member,
98+
language: nil,
99+
location: u.location,
100+
merit: u.merit,
101+
id_group: u.id_group,
102+
id_post_group: u.id_post_group,
103+
signature: u.signature,
104+
post_count: u.posts,
105+
name: u.realName,
106+
username: u.realName,
107+
title: u.usertitle,
108+
website: u.websiteUrl,
109+
last_login: u.lastLogin * 1000,
110+
show_online: u.showOnline,
111+
group_name: m.groupName,
112+
group_name_2: g.groupName,
113+
group_color: m.onlineColor,
114+
group_color_2: g.onlineColor,
115+
avatar:
116+
fragment(
117+
"if(? <>'',concat('https://bitcointalk.org/avatars/',?),ifnull(concat('https://bitcointalk.org/useravatars/',?),''))",
118+
u.avatar,
119+
u.avatar,
120+
a.filename
121+
)
122+
})
123+
|> SmfRepo.one()
137124
end
138125

139126
def build_poll(thread_id) do

lib/epochtalk_server_web/json/user_json.ex

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,26 @@ defmodule EpochtalkServerWeb.Controllers.UserJSON do
3636
end
3737

3838
{:ok, last_login} = DateTime.from_unix(user.last_login, :millisecond)
39-
last_login_past_72_hours = DateTime.diff(DateTime.utc_now, last_login, :hour) > 72
39+
last_login_past_72_hours = DateTime.diff(DateTime.utc_now(), last_login, :hour) > 72
4040

41-
last_active = if user.show_online == 1 or last_login_past_72_hours,
42-
do: user.last_login,
43-
else: nil
41+
last_active =
42+
if user.show_online == 1 or last_login_past_72_hours,
43+
do: user.last_login,
44+
else: nil
4445

4546
user
4647
|> Map.put(:signature, parsed_signature)
4748
|> Map.put(:gender, gender)
4849
|> Map.put(:dob, dob)
4950
|> Map.put(:last_active, last_active)
51+
|> Map.put(:position, user.group_name || user.group_name_2)
52+
|> Map.put(:position_color, user.group_color || user.group_color_2)
5053
|> Map.delete(:last_login)
5154
|> Map.delete(:show_online)
55+
|> Map.delete(:group_name)
56+
|> Map.delete(:group_name_2)
57+
|> Map.delete(:group_color)
58+
|> Map.delete(:group_color_2)
5259
end
5360

5461
@doc """

0 commit comments

Comments
 (0)