class Krb::Webhooks::Base
Webhooks
methods
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/krb/webhooks/base.rb, line 9 def initialize super verify_setup verify_production verify_admin end
Public Instance Methods
process()
click to toggle source
# File lib/krb/webhooks/base.rb, line 16 def process ::Krb::Webhooks::Reset.process %w[create update delete].each do |meth| HTTP.headers(headers).post(shopify_webhooks_url, body: body(meth).to_json) end end
Private Instance Methods
basic_auth_token()
click to toggle source
# File lib/krb/webhooks/base.rb, line 51 def basic_auth_token Base64.strict_encode64(password) end
body(meth)
click to toggle source
# File lib/krb/webhooks/base.rb, line 25 def body(meth) { webhook: { topic: "products/#{meth}", address: "https://#{setup.dig('production_namespace')}.ngx.host/webhook", format: :json, fields: %w[handle id] } } end
headers()
click to toggle source
# File lib/krb/webhooks/base.rb, line 44 def headers { 'Content-Type' => 'application/json', 'Authorization' => "Basic #{basic_auth_token}" } end
password()
click to toggle source
# File lib/krb/webhooks/base.rb, line 55 def password [setup.dig('admin_api_key'), setup.dig('admin_password')].join(':') end
shopify_webhooks_delete_url(id)
click to toggle source
# File lib/krb/webhooks/base.rb, line 40 def shopify_webhooks_delete_url(id) "https://#{setup.dig('shop_name')}.myshopify.com/admin/webhooks/#{id}.json" end
shopify_webhooks_url()
click to toggle source
# File lib/krb/webhooks/base.rb, line 36 def shopify_webhooks_url "https://#{setup.dig('shop_name')}.myshopify.com/admin/webhooks.json" end