tiss2go/lib/tiss/tiss_crawler.rb

74 lines
1.7 KiB
Ruby

class TissCrawler
require 'httparty'
$host = 'https://tiss.tuwien.ac.at'
def self.search(params)
api = params[:api]
search_parameter = params[:search_parameter]
search_term = params[:search_term].parameterize(separator: '+')
url = $host + api + '?' + search_parameter + '=' + search_term
puts(url)
response = HTTParty.get(url)
JSON.parse(response.body)["results"]
end
def self.get_details(params)
api = params[:api]
id = params[:tiss_id]
url = $host + api + id
puts(url)
response = HTTParty.get(url)
JSON.parse(response.body)
end
def self.get_course_details(params)
api = params[:api]
number = params[:number]
semester = params[:semester]
url = $host + api + number + '-' + semester
puts(url)
response = HTTParty.get(url)
response.parsed_response['tuvienna']['course']
end
def self.get_thesis_details(params)
api = params[:api]
id = params[:id]
url = $host + api + id
puts(url)
response = HTTParty.get(url)
response.parsed_response['tuvienna']['thesis']
end
def self.get_project_details(params)
api = params[:api]
id = params[:id]
url = $host + api + id
puts(url)
response = HTTParty.get(url)
response.parsed_response['tuVienna']['project']
end
def self.get_host
$host
end
def self.get_oid_name(item)
# Fetches a person's name based on the org id
# Example: https://tiss.tuwien.ac.at/api/person/v22/oid/250197
api = '/api/person/v22/oid/'
url = $host + api + item
puts(url)
response = HTTParty.get(url)
response.parsed_response['first_name'] + ' ' + response.parsed_response['last_name']
end
end