Track successful PuSH deliveries
This commit is contained in:
parent
ff21ff1489
commit
4a2347da41
|
@ -5,6 +5,7 @@
|
||||||
%th Callback URL
|
%th Callback URL
|
||||||
%th Confirmed
|
%th Confirmed
|
||||||
%th Expires in
|
%th Expires in
|
||||||
|
%th Last delivery
|
||||||
%tbody
|
%tbody
|
||||||
- @subscriptions.each do |subscription|
|
- @subscriptions.each do |subscription|
|
||||||
%tr
|
%tr
|
||||||
|
@ -16,5 +17,10 @@
|
||||||
- if subscription.confirmed?
|
- if subscription.confirmed?
|
||||||
%i.fa.fa-check
|
%i.fa.fa-check
|
||||||
%td= distance_of_time_in_words(Time.now, subscription.expires_at)
|
%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
|
= will_paginate @subscriptions, pagination_options
|
||||||
|
|
|
@ -19,6 +19,8 @@ class Pubsubhubbub::DeliveryWorker
|
||||||
.post(subscription.callback_url, body: payload)
|
.post(subscription.callback_url, body: payload)
|
||||||
|
|
||||||
raise "Delivery failed for #{subscription.callback_url}: HTTP #{response.code}" unless response.code > 199 && response.code < 300
|
raise "Delivery failed for #{subscription.callback_url}: HTTP #{response.code}" unless response.code > 199 && response.code < 300
|
||||||
|
|
||||||
|
subscription.touch(:last_successful_delivery_at)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -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
|
13
db/schema.rb
13
db/schema.rb
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# 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
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -199,13 +199,14 @@ ActiveRecord::Schema.define(version: 20161128103007) do
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "subscriptions", force: :cascade do |t|
|
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.string "secret"
|
||||||
t.datetime "expires_at"
|
t.datetime "expires_at"
|
||||||
t.boolean "confirmed", default: false, null: false
|
t.boolean "confirmed", default: false, null: false
|
||||||
t.integer "account_id", null: false
|
t.integer "account_id", null: false
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_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
|
t.index ["callback_url", "account_id"], name: "index_subscriptions_on_callback_url_and_account_id", unique: true, using: :btree
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue