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