Sha256: e047a47591b0b4b9b2e6e21153b6b1a90ab570ba2e6a7183f3fc9487b647323d

Contents?: true

Size: 1.18 KB

Versions: 2

Compression:

Stored size: 1.18 KB

Contents

class Foxynews::PresskitSetter
  attr_accessor :data, :paging

  def initialize(data, paging)
    @data = data
    @paging = paging
  end

  class << self
    #maps to /v1/pressrooms/:pressroom_id/presskits.json
    #pagination options take page and limit parameters
    def all(pagination_options = {})
      options = {query: pagination_options}

      begin
        presskits = Foxynews::Parser.data('/presskits.json', options)
      rescue StandardError => error
        raise GenericError(error.message)
      end

      if presskits.has_key?('data')
        return Foxynews::PresskitSetter.new(
          presskits['data'].each_with_object(data = []) {|pk| data << Foxynews::Presskit.new(pk) },
          Foxynews::Paging.new(presskits['paging'])
        )
      else
        return false
      end
    end

    #maps to /v1/pressrooms/:pressroom_id/presskits/:id.json
    def find(id)
      begin
        presskit = Foxynews::Parser.data("/presskits/#{id}.json")
      rescue StandardError => error
        raise GenericError(error.message)
      end

      if presskit.has_key?('data')
        return Foxynews::Presskit.new(presskit['data'])
      else
        return false
      end
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
foxynews-1.0.1 app/services/foxynews/presskit_setter.rb
foxynews-1.0.0 app/services/foxynews/presskit_setter.rb