Sha256: c36532427884b713498079bf98c8b9ecc30e4ae40839965a7d974bac58c4c639

Contents?: true

Size: 1.13 KB

Versions: 12

Compression:

Stored size: 1.13 KB

Contents

module Centaman
  #:nodoc:
  class Service < Wrapper
    def after_init(args)
      # overwritten by subclasses
    end

    def fetch_all
      @get_request ||= begin
        req = Proc.new do
          self.class.get("#{api_url}#{endpoint}", payload(:get))
        end
        resp = wrap_request_in_case_of_timeout(req, timeout_time: 20)

        raise resp['Message'] if resp && resp.is_a?(Hash)
        raise Exceptions::CentamanTimeout.new(resp) unless resp && resp.success?
        resp
      end
    end

    def post
      @post_request ||= begin
        req = Proc.new do
          self.class.post("#{api_url}#{endpoint}", payload(:post))
        end
        resp = wrap_request_in_case_of_timeout(req)
        self.respond_to?(:build_object) ? after_post(resp) : resp
      end
    end

    def put
      @put_request ||= begin
        req = Proc.new do
          self.class.put("#{api_url}#{endpoint}", payload(:put))
        end
        resp = wrap_request_in_case_of_timeout(req)
        self.respond_to?(:build_object) ? after_post(resp) : resp
      end
    end

    def after_post(response)
      build_object(response)
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
centaman-7.0.2 lib/centaman/service.rb
centaman-7.0.1 lib/centaman/service.rb
centaman-7.0.0 lib/centaman/service.rb
centaman-6.0.8 lib/centaman/service.rb
centaman-6.0.7 lib/centaman/service.rb
centaman-6.0.5 lib/centaman/service.rb
centaman-6.0.4 lib/centaman/service.rb
centaman-6.0.3 lib/centaman/service.rb
centaman-6.0.2 lib/centaman/service.rb
centaman-6.0.1 lib/centaman/service.rb
centaman-6.0.0 lib/centaman/service.rb
centaman-5.0.8 lib/centaman/service.rb