Sha256: dcf720e9dc99741034100c1c826be7cda31523b628ad0f9efb74abd4e9919e9b

Contents?: true

Size: 863 Bytes

Versions: 3

Compression:

Stored size: 863 Bytes

Contents

require 'base64'
require 'active_support/concern'

module Ahub
  module Deletable
    extend ActiveSupport::Concern

    included do
      alias_method :restore, :undelete
    end

    def delete(headers:)
      self.class.update_node(action: :delete, node_id: id, headers: headers)
    end

    def undelete(headers:)
      self.class.update_node(action: :undelete, node_id: id, headers: headers)
    end

    class_methods do
      def update_node(action:, node_id:, headers:)
        raise Exception.new('Unknown Action: use :delete or :undelete') unless %i(delete undelete).include?(action)
        url = "#{Ahub::DOMAIN}/services/v2/node/#{node_id}/#{action}.json"

        begin
          response = RestClient.put(url, {}.to_json, headers)
          response.code == 200
        rescue StandardError
          false
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ahub-0.12.0 lib/ahub/modules/deletable.rb
ahub-0.11.5 lib/ahub/modules/deletable.rb
ahub-0.11.4 lib/ahub/modules/deletable.rb