class Crawlers::ProjectsCrawlerController < Crawlers::TissCrawlerController def show_basic params[:api] = '/api/search/projectFullSearch/v1.0/projects' params[:search_parameter] = 'searchterm' puts params[:search_context] @host = TissCrawler.host # TissCrawler performs general search over the available projects result = TissCrawler.search(params) if result.has_key? :error flash[:alert] = 'Something went wrong! ' + result[:error] redirect_back(fallback_location: crawlers_tiss_crawler_search_path) else # TissCrawler performs general search over the available people @projects = result[:content] end end def show_detail params[:api] = '/api/pdb/rest/project/v2/' @id = params[:id] @personal_annotation = get_stored_annotation FavoriteProject, {id: @id} puts params # TissCrawler fetches the project's detail information @project = TissCrawler.get_project_details(params) # Host is needed for image rendering @host = TissCrawler.host end def add_to_fav params[:api] = '/api/pdb/rest/project/v2/' puts params[:id] @project = TissCrawler.get_project_details(params) # create stores the object to the db after creation favorite_hash = {id: [params[:id], current_user.id], # the user who is currently active # user_id: current_user.id, title: @project['titleDe']} if FavoriteProject.create(favorite_hash).valid? FavoriteProject.create(favorite_hash) flash[:alert] = 'Project added to your favorites!' else flash[:alert] = 'Project is already favorited!' end redirect_back(fallback_location: search) end def add_annotation store_annotation FavoriteProject, 'Project', {id: params[:id]} end end