Implement detail page for courses
This commit is contained in:
parent
74bd875427
commit
ba6d9b24a4
@ -11,6 +11,19 @@ class CoursesCrawlerController < TissCrawlerController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show_detail
|
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
|
end
|
||||||
|
|
||||||
def add_to_fav
|
def add_to_fav
|
||||||
|
|||||||
@ -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 %>
|
||||||
@ -25,6 +25,17 @@ class TissCrawler
|
|||||||
JSON.parse(response.body)
|
JSON.parse(response.body)
|
||||||
end
|
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
|
def self.get_host
|
||||||
$host
|
$host
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user