Sha256: 31ad04b4c5722fdad7b26a0db9a97aa3b777cfa32c6d45d2db1be24189b35dfa

Contents?: true

Size: 877 Bytes

Versions: 5

Compression:

Stored size: 877 Bytes

Contents

require 'ostruct'
require 'httparty'

module SenseiApi
  class Base
    class <<self
      def find_by(params)
        response = HTTParty.get(url, query: params.compact, format: :json)
        JSON.parse(response.body, object_class: OpenStruct)
      end

      def create(params)
        response = HTTParty.post(url, body: params.compact.reject { |key, _| key == :id }, format: :json)
        JSON.parse(response.body, object_class: OpenStruct)
      end

      def update(params)
        response = HTTParty.put(url, body: params.compact, format: :json)
        JSON.parse(response.body, object_class: OpenStruct)
      end

      def delete(params)
        response = HTTParty.delete(url, body: params.compact, format: :json)
        JSON.parse(response.body, object_class: OpenStruct)
      end

      def url
        raise NotImplementedError
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sensei_eod_utils-0.0.53 lib/sensei_api/base.rb
sensei_eod_utils-0.0.52 lib/sensei_api/base.rb
sensei_eod_utils-0.0.51 lib/sensei_api/base.rb
sensei_eod_utils-0.0.50 lib/sensei_api/base.rb
sensei_eod_utils-0.0.49 lib/sensei_api/base.rb