Add conflict resolution for channel updates

This commit is contained in:
Omar Roth 2018-03-28 23:05:20 -05:00
parent 239a6c892c
commit 10f2048d95

View file

@ -502,10 +502,11 @@ def get_channel(id, client, db)
if Time.now - channel.updated > 1.minutes if Time.now - channel.updated > 1.minutes
channel = fetch_channel(id, client, db) channel = fetch_channel(id, client, db)
channel_array = channel.to_a[1..-1] channel_array = channel.to_a
args = arg_array(channel_array) args = arg_array(channel_array)
db.exec("UPDATE channels SET (author,updated) = (#{args}) WHERE id = '#{channel.id}'", channel_array) db.exec("INSERT INTO channels VALUES (#{args}) \
ON CONFLICT (id) DO UPDATE SET author = $2, updated = $3", channel_array)
end end
else else
channel = fetch_channel(id, client, db) channel = fetch_channel(id, client, db)