Sha256: b85f8bca67c9bc52035abbda94ed0e99d1663921e7409f72c4c41c7b453641b2

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require 'seven_api/resource'

# This module exposes the methods for communicating with the API endpoint /hooks.
# read more: https://www.seven.io/en/docs/gateway/http-api/webhooks/
module SevenApi::Resources
  class Hooks < SevenApi::Resource
    @endpoint = SevenApi::Endpoint::HOOKS
    @http_methods = {
      :read => :get,
      :subscribe => :post,
      :unsubscribe => :post,
    }

    # Retrieve all webhooks
    # @param params [Hash]
    # @return [Hash]
    def read(params = {})
      request(params.merge({ :action => SevenApi::Hooks::Action::READ }))
    end

    # Register a new webhook
    # @param params [Hash]
    # @return [Hash]
    def subscribe(params)
      SevenApi::Hooks::Validator::subscribe(params)

      request(params.merge({ :action => SevenApi::Hooks::Action::SUBSCRIBE }))
    end

    # Delete a webhook
    # @param params [Hash]
    # @return [Hash]
    def unsubscribe(params)
      SevenApi::Hooks::Validator::unsubscribe(params)

      request(params.merge({ :action => SevenApi::Hooks::Action::UNSUBSCRIBE }))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
seven_api-0.5.0 lib/seven_api/resources/hooks.rb