CardTapp/yext-api

View on GitHub
lib/yext/api/concerns/rate_limits.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Yext
  module Api
    module Concerns
      # This module adds attributes to a module for saving and setting the rate limits returned
      # from the Yext API.
      module RateLimits
        attr_reader :rate_limit_remaining,
                    :rate_limit_limit,
                    :rate_limit_reset_at,
                    :last_status,
                    :last_meta,
                    :last_data

        private

        def last_data=(last_data)
          @last_data = last_data
        end

        def last_status=(last_status)
          @last_status = last_status
        end

        def last_meta=(last_meta)
          @last_meta = last_meta
        end

        def update_rates(remaining: 1_000, limit: 1_000, reset_at: Time.now)
          @rate_limit_limit     = limit
          @rate_limit_remaining = remaining
          @rate_limit_reset_at  = reset_at
        end
      end
    end
  end
end