From 26ca38c2e1293c9f6fa295e68db30039a8623e72 Mon Sep 17 00:00:00 2001 From: Adam Cooke Date: Thu, 1 Jun 2017 10:45:32 +0100 Subject: [PATCH] only update links if there's a message ID --- lib/postal/fast_server/interface.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/postal/fast_server/interface.rb b/lib/postal/fast_server/interface.rb index ad66ae5..cb17f8b 100644 --- a/lib/postal/fast_server/interface.rb +++ b/lib/postal/fast_server/interface.rb @@ -74,9 +74,11 @@ module Postal if message_db = get_message_db_from_server_token(server_token) if link = message_db.select(:links, :where => {:token => link_token}, :limit => 1).first time = Time.now.to_f - message_db.update(:messages, {:clicked => time}, :where => {:id => link['message_id']}) - message_db.insert(:clicks, {:message_id => link['message_id'], :link_id => link['id'], :ip_address => request.ip, :user_agent => request.user_agent, :timestamp => time}) - SendWebhookJob.queue(:main, :server_id => message_db.server_id, :event => 'MessageLinkClicked', :payload => {:_message => link['message_id'], :url => link['url'], :token => link['token'], :ip_address => request.ip, :user_agent => request.user_agent}) + if link['message_id'] + message_db.update(:messages, {:clicked => time}, :where => {:id => link['message_id']}) + message_db.insert(:clicks, {:message_id => link['message_id'], :link_id => link['id'], :ip_address => request.ip, :user_agent => request.user_agent, :timestamp => time}) + SendWebhookJob.queue(:main, :server_id => message_db.server_id, :event => 'MessageLinkClicked', :payload => {:_message => link['message_id'], :url => link['url'], :token => link['token'], :ip_address => request.ip, :user_agent => request.user_agent}) + end return [307, {'Location' => link['url']}, ["Redirected to: #{link['url']}"]] else return [404, {}, ['Link not found']]