Sha256: 86ae7ca0b74828777a71bbdbd113b4ecb4207b0f0aa5f3410f926b8f815517dd

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

require 'patron'
require 'json'

module SSEDAP
  class Client
    @host = "https://ssedap.se.rit.edu"

    def initialize(host=nil)
      @host = host unless host.nil?
    end

    def authorize(username, password)
      ps = session

      # url encode parameters
      username = CGI::unescape username
      password = CGI::unescape password

      # make the request
      resp = ps.post("/api/authorize", "username=#{username}&password=#{password}")

      retval = {}
      retval["status"] = resp.status
      retval["data"] = JSON.parse resp.body

      retval
    end

    def userinfo(username, password, lookup)
      ps = session

      # url encode parameters
      username = CGI::unescape username
      password = CGI::unescape password
      lookup = CGI::unescape lookup

      # make the request
      resp = ps.post("/api/userinfo", "username=#{username}&password=#{password}&lookup=#{lookup}")

      retval = {}
      retval["status"] = resp.status
      retval["data"] = JSON.parse resp.body

      retval
    end

    private

    def session
      ps = Patron::Session.new
      ps.timeout = 10
      ps.base_url = @host
      ps.headers['User-Agent'] = 'ssedap/1.0'
      ps.insecure = true # this is decidedly not a best practice

      ps
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ssedap-client-0.0.2 lib/ssedap/client.rb