6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'app/models/topic_view_stat.rb', line 6
def self.add(topic_id:, date:, anonymous_views:, logged_in_views:)
sql = <<~SQL
INSERT INTO topic_view_stats (topic_id, viewed_at, anonymous_views, logged_in_views)
VALUES (:topic_id, :viewed_at, :anon_views, :logged_in_views)
ON CONFLICT (topic_id, viewed_at)
DO UPDATE SET
anonymous_views = topic_view_stats.anonymous_views + :anon_views,
logged_in_views = topic_view_stats.logged_in_views + :logged_in_views
SQL
DB.exec(
sql,
topic_id: topic_id,
viewed_at: date,
anon_views: anonymous_views,
logged_in_views: logged_in_views,
)
end
|