def execute(self, recommendation_id, user_id) -> Activity: if recommendation_id is None: raise BadArgException() # TEST IF RECOMMENDATION ALREADY IN ACTIVITY FOR THE USER existing_activity = Activity.query. \ filter_by(user_id=user_id). \ filter_by(recommendation_id=recommendation_id).first() if existing_activity: raise AlreadyStartedException activity = Activity() activity.set_recommendation(recommendation_id) activity.set_user(user_id) BaseObject.check_and_save(activity) return activity