about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/views/admin/pubsubhubbub/index.html.haml6
-rw-r--r--app/workers/pubsubhubbub/delivery_worker.rb2
-rw-r--r--db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb5
-rw-r--r--db/schema.rb13
4 files changed, 20 insertions, 6 deletions
diff --git a/app/views/admin/pubsubhubbub/index.html.haml b/app/views/admin/pubsubhubbub/index.html.haml
index bb897eb89..ad8cf5198 100644
--- a/app/views/admin/pubsubhubbub/index.html.haml
+++ b/app/views/admin/pubsubhubbub/index.html.haml
@@ -5,6 +5,7 @@
       %th Callback URL
       %th Confirmed
       %th Expires in
+      %th Last delivery
   %tbody
     - @subscriptions.each do |subscription|
       %tr
@@ -16,5 +17,10 @@
           - if subscription.confirmed?
             %i.fa.fa-check
         %td= distance_of_time_in_words(Time.now, subscription.expires_at)
+        %td
+          - if subscription.last_successful_delivery_at.nil?
+            %i.fa.fa-times
+          - else
+            = l subscription.last_successful_delivery_at
 
 = will_paginate @subscriptions, pagination_options
diff --git a/app/workers/pubsubhubbub/delivery_worker.rb b/app/workers/pubsubhubbub/delivery_worker.rb
index 6d526c2b1..20c72ce24 100644
--- a/app/workers/pubsubhubbub/delivery_worker.rb
+++ b/app/workers/pubsubhubbub/delivery_worker.rb
@@ -19,6 +19,8 @@ class Pubsubhubbub::DeliveryWorker
                    .post(subscription.callback_url, body: payload)
 
     raise "Delivery failed for #{subscription.callback_url}: HTTP #{response.code}" unless response.code > 199 && response.code < 300
+
+    subscription.touch(:last_successful_delivery_at)
   end
 
   private
diff --git a/db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb b/db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb
new file mode 100644
index 000000000..614155b91
--- /dev/null
+++ b/db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb
@@ -0,0 +1,5 @@
+class AddLastSuccessfulDeliveryAtToSubscriptions < ActiveRecord::Migration[5.0]
+  def change
+    add_column :subscriptions, :last_successful_delivery_at, :datetime, null: true, default: nil
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 2c0e6de5b..9ba638bfc 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20161128103007) do
+ActiveRecord::Schema.define(version: 20161130142058) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -199,13 +199,14 @@ ActiveRecord::Schema.define(version: 20161128103007) do
   end
 
   create_table "subscriptions", force: :cascade do |t|
-    t.string   "callback_url", default: "",    null: false
+    t.string   "callback_url",                default: "",    null: false
     t.string   "secret"
     t.datetime "expires_at"
-    t.boolean  "confirmed",    default: false, null: false
-    t.integer  "account_id",                   null: false
-    t.datetime "created_at",                   null: false
-    t.datetime "updated_at",                   null: false
+    t.boolean  "confirmed",                   default: false, null: false
+    t.integer  "account_id",                                  null: false
+    t.datetime "created_at",                                  null: false
+    t.datetime "updated_at",                                  null: false
+    t.datetime "last_successful_delivery_at"
     t.index ["callback_url", "account_id"], name: "index_subscriptions_on_callback_url_and_account_id", unique: true, using: :btree
   end