class ConnpassToCalendar::Api::Connpass::Event

Public Class Methods

get(params) click to toggle source
# File lib/connpass_to_calendar/api/connpass/event.rb, line 10
def self.get(params)
  begin
    validation params
    params = URI.encode_www_form params
    uri = URI.parse("https://connpass.com/api/v1/event/?#{params}")
    response = Net::HTTP.start(uri.host, uri.port, :use_ssl => true) { |http|
      request = Net::HTTP::Get.new uri
      http.request request
    }
    JSON.parse response.body
  rescue ArgumentError => e
    puts e.message
    exit
  rescue IOError => e
    puts e.message
    exit
  rescue Timeout::Error => e
    puts e.message
    exit
  rescue JSON::ParserError => e
    puts e.message
    exit
  rescue => e
    puts e.message
    exit
  end
end

Private Class Methods

validation(params) click to toggle source
# File lib/connpass_to_calendar/api/connpass/event.rb, line 38
def self.validation(params)
  params = Hash[params.map { |k, v| [k.to_sym, v] }]
  params.each do |key, value|
    case key
    when :event_id
      unless value.kind_of?(Array)
        value = Array[value]
      end
      value.each do |event_id|
        unless event_id =~ /^[0-9]+$/
          raise ArgumentError, "event_id validation error"
        end
      end
    when :keyword
    when :keyword_or
    when :ym
      unless value.kind_of?(Array)
        value = Array[value]
      end
      format = "%Y%m"
      begin
        value.each do |ym|
          DateTime.strptime(ym, format)
        end
      rescue ArgumentError
        raise ArgumentError, "ym validation error"
      end
    when :ymd
      unless value.kind_of?(Array)
        value = Array[value]
      end
      format = "%Y%m%d"
      begin
        value.each do |ymd|
          DateTime.strptime(ymd, format)
        end
      rescue ArgumentError
        raise ArgumentError, "ymd validation error"
      end
    when :nickname
    when :owner_nickname
    when :series_id
      unless value.kind_of?(Array)
        value = Array[value]
      end
      value.each do |series_id|
        unless series_id =~ /^[0-9]+$/
          raise ArgumentError, "series_id validation error"
        end
      end
    when :start
      unless value =~ /^[0-9]+$/
        raise ArgumentError, "start validation error"
      end
    when :order
      unless value =~ /^[1-3]$/
        raise ArgumentError, "order validation error"
      end
    when :count
      unless value =~ /^[0-9]+$/
        raise ArgumentError, "count validation error"
      end
      if value.to_i < 0 || 100 < value.to_i
        raise ArgumentError, "count validation error"
      end
    else
      raise ArgumentError, "parameter not exist"
    end
  end
end