Implement detail page for courses

This commit is contained in:
Tobias Eidelpes 2020-05-09 15:56:44 +02:00
parent 74bd875427
commit ba6d9b24a4
3 changed files with 30 additions and 0 deletions

View File

@ -11,6 +11,19 @@ class CoursesCrawlerController < TissCrawlerController
end
def show_detail
params[:api] = '/api/course/'
regex = params[:detail_url].match(/courseNr=(?<number>\d{6})/)
params[:number] = regex[:number]
regex = params[:detail_url].match(/semester=(?<semester>\d{4}[SW])/)
params[:semester] = regex[:semester]
puts params
# TissCrawler fetches the course's detail information
@course = TissCrawler.get_course_details(params)
puts @course
# Host is needed for image rendering
@host = TissCrawler.get_host
end
def add_to_fav

View File

@ -0,0 +1,6 @@
<% if @course != nil %>
<%-# TODO parse more fields and style them appropriately -%>
<h2><%= @course['tuvienna']['course']['title']['en'] %></h2>
<h5><%= @course['tuvienna']['course']['courseType'] %> <%= @course['tuvienna']['course']['semesterCode'] %></h5>
<%= button_to 'Add to favorites', action: :add_to_fav, number: @course['tuvienna']['course']['courseNumber'], semester: @course['tuvienna']['course']['semesterCode'] %>
<% end %>

View File

@ -25,6 +25,17 @@ class TissCrawler
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
end
def self.get_host
$host
end