Implement favoriting of courses

This commit is contained in:
2020-05-21 13:31:54 +02:00
parent a43c2b8edb
commit b8cc0d5b61
6 changed files with 67 additions and 1 deletions
@@ -40,6 +40,27 @@ class Crawlers::CoursesCrawlerController < Crawlers::TissCrawlerController
end
def add_to_fav
params[:api] = '/api/course/'
regex = params[:detail_url].match(/courseNr=(?<number>\S{6})/)
params[:number] = regex[:number]
regex = params[:detail_url].match(/semester=(?<semester>\d{4}[SW])/)
params[:semester] = regex[:semester]
@course = TissCrawler.get_course_details(params)
# create stores the object to the db after creation
favorite_hash = {number: @course['courseNumber'],
semester: @course['semesterCode'],
title: @course['title']['de'],
# the user who is currently active
user_id: current_user.id}
if FavoriteCourse.create(favorite_hash).valid?
FavoriteCourse.create(favorite_hash)
flash[:alert] = 'Course added to your favorites!'
else
flash[:alert] = 'Course is already favorited!'
end
redirect_back(fallback_location: search)
end
end