Sha256: 5164bfe25d7beb5f265d7c2c6d7922ee264e088aeb2dd77e0652b6964f5f0a1b

Contents?: true

Size: 998 Bytes

Versions: 2

Compression:

Stored size: 998 Bytes

Contents

require 'net/http'
require 'learnosity/sdk/request/init'

module LearnosityUtils
  module EndPoint
    module Base

      def request(data_request = nil, endpoint = nil, action = 'get', service = 'data')
        init = Learnosity::Sdk::Request::Init.new(
            service,
            LearnosityUtils.configuration.security_packet,
            LearnosityUtils.configuration.consumer_secret,
            data_request,
            action
        )

        request = init.generate
        remote = Net::HTTP.post_form URI("#{site}#{endpoint}"), request
        body = JSON.parse remote.body, symbolize_names: true

        if body[:meta][:code] == 42000
          sleep LearnosityUtils.configuration.retry_delay
          request(data_request, endpoint, action, service)
        else
          body
        end
      end

      private

      def site
        "https://data.learnosity.com/v#{LearnosityUtils.configuration.version}/"
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
learnosity_utils-0.1.1 lib/learnosity_utils/endpoint/base.rb
learnosity_utils-0.1.0 lib/learnosity_utils/endpoint/base.rb