Beispiel #1
0
    def execute(self, recommendation_id: int, user_id: int) -> 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.recommendation_id = recommendation_id
        activity.user_id = user_id

        BaseObject.check_and_save(activity)

        HistoryActivity().execute(activity.id, "pending")

        return activity