def get_outdoor_v1(self): """Get outdoor data.""" return flask.jsonify({ 'cycling': fetch_dataset(Datasets.CYCLING_ROUTES), 'hiking': fetch_dataset(Datasets.HIKING_ROUTES), 'running': fetch_dataset(Datasets.RUNNING_ROUTES), })
def get_media_v1(self): """Get media data.""" movies_df = fetch_dataset(Datasets.MOVIES) podcasts_df = fetch_dataset(Datasets.PODCASTS) tv_shows_df = fetch_dataset(Datasets.TV_SHOWS) youtube_channels_df = fetch_dataset(Datasets.YOUTUBE_CHANNELS) return flask.jsonify({ 'movies': list(movies_df.T.to_dict().values()), 'podcasts': list(podcasts_df.T.to_dict().values()), 'tv': list(tv_shows_df.T.to_dict().values()), 'youtube': list(youtube_channels_df.T.to_dict().values()), })
def post_projects_download_v1(self, project_id): """Post a project download action.""" projects = fetch_dataset(Datasets.PROJECTS) for project in projects: if project['project_id'] == project_id: project_name = project['name'] self._log( f"Project \"{project_name}\" ({project_id}) downloaded") success_message = f"Successfully downloaded project {project_name}" return create_response(success_message, HTTPCodes.SUCCESS_GENERAL) error_message = f"Project with ID {project_id} not found" return create_response(error_message, HTTPCodes.ERROR_NOT_FOUND)
def get_survey_results_v1(self): """Get survey data.""" result_documents = list(self._db_surveys.find()) aggregated_counts = {} for result_document in result_documents: survey_id = result_document['survey_id'] choices_array = np.array( result_document['response']['choices']).astype(int) if survey_id not in aggregated_counts: aggregated_counts[survey_id] = np.zeros_like(choices_array) aggregated_counts[survey_id] += choices_array surveys = fetch_dataset(Datasets.SURVEYS) survey_map = {survey['survey_id']: survey for survey in surveys} results = [] for survey_id, survey_counts in aggregated_counts.items(): survey = survey_map[survey_id] survey_result_questions = [] for question_counts, question in zip(survey_counts, survey['questions']): question_frequencies = question_counts / question_counts.sum() question_result_choices = [] for option_number in range(len(question['options'])): question_result_choices.append({ 'option': question['options'][option_number], 'frequency': float(question_frequencies[option_number]), 'count': float(question_counts[option_number]), }) survey_result_questions.append({ "question": question['text'], "options": question_result_choices, }) results.append({ 'survey_name': survey['name'], 'questions': survey_result_questions, }) return flask.jsonify(results)
def post_survey_results_v1(self, survey_id): """Post a survey result.""" surveys = fetch_dataset(Datasets.SURVEYS) for survey in surveys: if survey['survey_id'] == survey_id: survey_name = survey['name'] self._log(f"Survey \"{survey_name}\" ({survey_id}) submitted") document = { 'survey_id': survey_id, 'created_date': datetime.now(), 'response': flask.request.json, } self._db_surveys.insert_one(document) success_message = f"Successfully submitted survey \"{survey_name}\"" return create_response(success_message, HTTPCodes.SUCCESS_GENERAL) error_message = f"Survey with ID {survey_id} not found" return create_response(error_message, HTTPCodes.ERROR_NOT_FOUND)
def get_projects_v1(self): """Get project data.""" return flask.jsonify(fetch_dataset(Datasets.PROJECTS))
def get_surveys_v1(self): """Get survey data.""" return flask.jsonify(fetch_dataset(Datasets.SURVEYS))
def get_professional_jobs_v1(self): """Get job data.""" return flask.jsonify(fetch_dataset(Datasets.JOBS))
def get_recipes_v1(self): """Get recipe data.""" return flask.jsonify(fetch_dataset(Datasets.RECIPES))
def get_professional_v1(self): """Get professional data.""" return flask.jsonify({ 'courses': fetch_dataset(Datasets.COURSES), 'jobs': fetch_dataset(Datasets.JOBS), })
def get_professional_courses_v1(self): """Get college course data.""" return flask.jsonify(fetch_dataset(Datasets.COURSES))
def get_media_podcasts_v1(self): """Get podcast data.""" podcasts_df = fetch_dataset(Datasets.PODCASTS) return flask.jsonify(list(podcasts_df.T.to_dict().values()))
def get_archive_v1(self): """Get archive data.""" return flask.jsonify(fetch_dataset(Datasets.ARCHIVE))
def get_posts_v1(self): """Get blog post data.""" return flask.jsonify({'posts': fetch_dataset(Datasets.POSTS)})
def get_media_movies_v1(self): """Get movie data.""" movies_df = fetch_dataset(Datasets.MOVIES) return flask.jsonify(list(movies_df.T.to_dict().values()))
def get_outdoor_running_v1(self): """Get running data.""" return flask.jsonify(fetch_dataset(Datasets.RUNNING_ROUTES))
def get_outdoor_hiking_v1(self): """Get hiking data.""" return flask.jsonify(fetch_dataset(Datasets.HIKING_ROUTES))
def get_outdoor_cycling_v1(self): """Get cycling data.""" return flask.jsonify(fetch_dataset(Datasets.CYCLING_ROUTES))
def get_media_tv_v1(self): """Get TV data.""" tv_df = fetch_dataset(Datasets.TV_SHOWS) return flask.jsonify(list(tv_df.T.to_dict().values()))
def get_media_youtube_v1(self): """Get YouTube data.""" youtube_df = fetch_dataset(Datasets.YOUTUBE_CHANNELS) return flask.jsonify(list(youtube_df.T.to_dict().values()))