def edit_user_activity(token_info: dict, activity_id: str) -> Tuple[Response, int]: data = request.get_json() category = Categories.get_specific_category(data.pop("category_id")) start = _parse_to_utc_iso8610(data["activity_start"]) end = _parse_to_utc_iso8610(data["activity_end"]) data.update(category=category) data.update( duration=_calculate_duration_in_mins( start, end ) ) data["activity_start"] = start data["activity_end"] = end updated_activity = Activities.edit_specific_activity(activity_id, **data) print(updated_activity) return jsonify({"message": f"Activity {activity_id} successfully updated."}), 200
def _calculate_category_duration(user_id: str, category_id: str) -> float: category = Categories.get_specific_category(category_id=category_id) activities = Activities.objects(user_id=user_id, category=category).exclude("id") sum_duration = sum([activity.duration for activity in activities]) return sum_duration
def create_activity(token_info: dict) -> Tuple[Response, int]: data = request.get_json() start = _parse_to_utc_iso8610(data["activity_start"]) end = _parse_to_utc_iso8610(data["activity_end"]) activity_id = str(uuid.uuid4()) category = Categories.get_specific_category(data["category_id"]) duration = _calculate_duration_in_mins(start, end) Activities( activity_id=activity_id, name=data["name"], user_id=token_info["public_id"], activity_start=start, activity_end=end, category=category, duration=duration, ).save() return jsonify({"activity_id": activity_id}), 200