def post(self): # Get the current user current_user = get_jwt_identity() # Parse incoming data and extract required field search_data = search_schema.load(request.get_json()) incoming_string = search_data['string'] incoming_version = search_data['version'] incoming_content = search_data['content'] if incoming_content == 'authors': active_user_objects = ActiveModel.find_entry_by_name( incoming_string, incoming_version, current_user) # Slice the results according to the need if incoming_version > 1: active_user_objects = active_user_objects[(incoming_version - 1) * 15:] # Return results and if there are no users matching the criteria then return empty list # Return empty list if there are no more versions with users matching the criteria if len(active_user_objects) != 0: return { 'results': ActiveModel.generate_search_data(active_user_objects, current_user) } else: return {'message': NO_MORE_SEARCH_DATA}, 400 elif incoming_content == 'stories': discovered_story_objects = StoryModel.find_stories_by_title( incoming_string, incoming_version) # Slice the results according to the need if incoming_version > 1: discovered_story_objects = discovered_story_objects[ (incoming_version - 1) * 15:] # Return results and if there are no users matching the criteria then return empty list # Return empty list if there are no more versions with users matching the criteria if len(discovered_story_objects) != 0: return { 'results': [ StoryModel.generate_story_element_data(story) for story in discovered_story_objects ] } else: return {'message': NO_MORE_SEARCH_DATA}, 400
def post(self): genre_data = genre_schema.load(request.get_json()) discovered_stories = StoryModel.find_stories_by_genre( genre_data['genre'], genre_data['version']) # Slice the results based on version if genre_data['version'] > 1: discovered_stories = discovered_stories[(genre_data['version'] - 1) * 15:] # Send appropriate response if len(discovered_stories) != 0: return { 'results': [ StoryModel.generate_story_element_data(story) for story in discovered_stories ] } else: return {'message': NO_MORE_GENRE_DATA}, 400
def post(self): # Extract user who tends to like from jwt current_user = get_jwt_identity() # Check if the jwt was sent or not if not current_user: # Create an object using request data profile_object = profile_schema.load(request.get_json()) active_user_object = ActiveModel.find_entry_by_uid( profile_object['uid']) if active_user_object is None: return {'message': INVALID_REQUEST} else: return { # If basic data is not yet added then empty dict will be returned # If data is kept private then appropriate message is returned 'basic': BasicModel.generate_basic_profile_data(active_user_object), 'stories': [ StoryModel.generate_story_element_data(story) for story in StoryModel.filter_story_object_list( active_user_object.submissions) ], 'following': FollowModel.generate_following_profile_data( active_user_object), 'followers': FollowModel.generate_followers_profile_data( active_user_object), 'favourites': LikesModel.generate_favourites_profile_data( active_user_object), 'achievements': { 'views': active_user_object.views, 'likes': active_user_object.likes } } else: # Create an object using request data active_user_object = ActiveModel.find_entry_by_uid( get_jwt_identity()) return { 'basic': BasicModel.force_generate_basic_profile_data( active_user_object), 'stories': [ StoryModel.generate_story_element_data(story) for story in StoryModel.filter_story_object_list( active_user_object.submissions) ], 'following': FollowModel.force_generate_following_profile_data( active_user_object), 'followers': FollowModel.generate_followers_profile_data( active_user_object), 'favourites': LikesModel.force_generate_favourites_profile_data( active_user_object), 'achievements': { 'views': active_user_object.views, 'likes': active_user_object.likes } }