def get_teachers(user_id): """ :param universities: List(String) major: String gender: Enum subjects: List(Enum) more_than_price: Integer(exclude) less_than_price: Integer(exclude) max_zip_code: Integer(include) min_zip_code: Integer(include) next_token: Integer :return: """ auth_service.check_permission() options = user_service.GetTeacherOptions(universities=request.args.get('universities'), gender=request.args.get('gender'), subjects=request.args.get('subjects'), more_than_price=request.args.get('more_than_price'), less_than_price=request.args.get('less_than_price'), # sido=request.args.get('sido'), # sigungu=request.args.get('sigungu'), # bname=request.args.get('bname'), max_zip_code=request.args.get('max_zip_code'), min_zip_code=request.args.get('min_zip_code'), next_token=request.args.get('next_token'), per_page=current_app.config['PER_PAGE']) teachers, paging = user_service.get_teachers(user_id, options) dto_list = dtos(UserDTO, teachers, is_checked_phone_number=False) return dto_list, paging
def get_lessons(): """ :param gender: Enum subjects: List(Enum) more_than_price: Integer(exclude) less_than_price: Integer(exclude) student_status: Enum grade: Integer max_zip_code: Integer(include) min_zip_code: Integer(include) nextToken: Integer :return: """ auth_service.check_permission() options = lesson_service.GetLessonOptions( gender=request.args.get('gender'), subjects=request.args.get('subjects'), more_than_price=request.args.get('more_than_price'), less_than_price=request.args.get('less_than_price'), student_status=request.args.get('student_status'), grade=request.args.get('grade'), max_zip_code=request.args.get('max_zip_code'), min_zip_code=request.args.get('min_zip_code'), statuses=[LessonStatus.BIDDING, LessonStatus.DEALING], next_token=request.args.get('next_token'), per_page=current_app.config['PER_PAGE']) lessons, paging = lesson_service.get_lessons(options) dto_list = dtos(LessonDTO, lessons) return dto_list, paging
def set_preferences(user_id): """ :param user_id: :return: """ auth_service.check_permission(user_id) preference_request = UserPreferencesRequest(request.get_json()) user = user_service.set_preferences(user_id, preference_request) return UserDTO(user), None
def get_user_notifications(user_id): auth_service.check_permission(user_id) options = user_service.GetNotificationOptions( user_id=user_id, next_token=request.args.get('next_token'), per_page=current_app.config['PER_PAGE']) notifications, paging = user_service.get_notifications(options) dto_list = dtos(NotificationDTO, notifications) return dto_list, paging
def get_lesson_favorites(user_id): auth_service.check_permission(user_id) options = lesson_service.GetLessonFavoriteOptions( user_id=user_id, next_token=request.args.get('next_token'), per_page=current_app.config['PER_PAGE']) favorites, paging = lesson_service.get_favorites(options) dto_list = dtos(LessonFavoriteDTO, favorites, include_lesson=True) return dto_list, paging
def get_user_history_lessons(user_id): auth_service.check_permission(user_id) options = user_service.GetUserLessonOptions( user_id=user_id, statuses=[LessonStatus.CANCELED, LessonStatus.FINISHED], next_token=request.args.get('next_token'), per_page=current_app.config['PER_PAGE']) lessons, paging = user_service.get_lessons(options) dto_list = dtos(LessonDTO, lessons) return dto_list, paging
def get_user_active_lessons(user_id): auth_service.check_permission(user_id) options = user_service.GetUserLessonOptions( user_id=user_id, statuses=[LessonStatus.BIDDING, LessonStatus.DEALING], next_token=request.args.get('next_token'), per_page=current_app.config['PER_PAGE']) lessons, paging = user_service.get_lessons(options) dto_list = dtos(LessonDTO, lessons) return dto_list, paging
def delete_profile_photos(user_id): """ :param user_id: :return: :error NO_SUCH_ELEMENT """ auth_service.check_permission(user_id) user = user_service.set_profile_photos( user_id, current_app.config['USER_DEFAULT_PROFILE_PHOTOS']) return UserDTO(user), None
def add_gcms(user_id): """ :param user_id: :return: :error: INVALID_ARGUMENT """ auth_service.check_permission(user_id) gcm_add_request = UserGCMAddRequest(request_json=request.get_json()) gcm = user_service.add_gcm(user_id, gcm_add_request.key) return True, None
def get_biddings(lesson_id): """ :param next_token: Integer :return: """ auth_service.check_permission() options = lesson_service.GetLessonBiddingOptions( lesson_id=lesson_id, next_token=request.args.get('next_token'), per_page=current_app.config['PER_PAGE']) lesson_biddings, paging = lesson_service.get_lesson_biddings(options) dto_list = dtos(LessonBiddingDTO, lesson_biddings, include_user=True) return dto_list, paging
def get_lesson(lesson_id): user_data = auth_service.check_permission() lesson = lesson_service.get_lesson(lesson_id) biddings_count = lesson_service.get_lesson_biddings_count(lesson_id) is_favorited = False if lesson_service.get_lesson_favorite(lesson_id, user_data.get('id')) is not None: is_favorited = True is_bid = False users_bidding = lesson_service.get_lesson_bidding(lesson_id, user_data.get('id')) if users_bidding is not None: is_bid = True is_checked_owner_phone_number = False if lesson_service.is_checked_phone_number(user_data.get('id'), lesson.owner_id) is not None: is_checked_owner_phone_number = True is_checked_selected_user_phone_number = False if lesson_service.is_checked_phone_number( user_data.get('id'), lesson.selected_user_id) is not None: is_checked_selected_user_phone_number = True return LessonDTO( lesson, biddings_count=biddings_count, is_favorited=is_favorited, is_bid=is_bid, users_bidding=users_bidding, is_checked_owner_phone_number=is_checked_owner_phone_number, is_checked_selected_user_phone_number= is_checked_selected_user_phone_number), None
def favorite_user(user_id): """ 상대방을 찜할 때 부르는 API 로 get favorites 와는 다르게 상대방 user_id 입니다 """ user_data = auth_service.check_permission() favorite = user_service.add_favorite(user_data.get('id'), user_id) return UserFavoriteDTO(favorite), None
def unfavorite_user(user_id): """ 상대방 찜을 없앨 때 부르는 API 로 get favorites 와는 다르게 상대방 user_id 입니다 """ user_data = auth_service.check_permission() user_service.remove_favorite(user_data.get('id'), user_id) return None, None
def check_phone_number(user_id): """ :param user_id: :return: """ user_data = auth_service.check_permission() checked_user = user_service.check_phone_number(user_data.get('id'), user_id) return UserDTO(checked_user, is_checked_phone_number=True), None
def create_lesson(): """ :return: :error INVALID_ARGUMENT ELEMENT_ALREADY_EXIST """ user_data = auth_service.check_permission() lesson = lesson_service.create_lesson(user_data.get('id')) return LessonDTO(lesson), None
def favorite_lesson(lesson_id): """ :param lesson_id: :return: :error ELEMENT_ALREADY_EXISTS """ user_data = auth_service.check_permission() lesson_favorite = lesson_service.add_lesson_favorite( lesson_id, user_data.get('id')) return LessonFavoriteDTO(lesson_favorite, include_lesson=True), None
def select_teacher(lesson_id, user_id): """ :param lesson_id: :param user_id: :return: :error EXPIRED_LESSON_DEALING NO_SUCH_ELEMENT """ user_data = auth_service.check_permission() user = lesson_service.select_teacher(lesson_id, user_data.get('id'), user_id) return UserDTO(user, is_checked_phone_number=True), None
def set_profile_photos(user_id): """ :param user_id: :return: :error TEMPORARY_UNAVAILABLE NO_SUCH_ELEMENT """ auth_service.check_permission(user_id) try: options = upload_service.UploadResizeOptions( user_id=user_id, upload_folder=current_app.config['UPLOAD_FOLDER'], aws_access_key=current_app.config['AWS_ACCESS_KEY'], aws_secret_key=current_app.config['AWS_SECRET_KEY'], aws_bucket=current_app.config['AWS_DEFAULT_BUCKET'], aws_region_host=current_app.config['AWS_REGION_HOST']) images = upload_service.upload_resize_image(options, request) except Exception as e: raise ForbiddenError(message=str(e)) user = user_service.set_profile_photos(user_id, images) return UserDTO(user, is_checked_phone_number=True), None
def cancel_lesson(lesson_id): user_data = auth_service.check_permission() canceled_lesson = lesson_service.cancel_lesson(user_data.get('id'), lesson_id) biddings_count = lesson_service.get_lesson_biddings_count(lesson_id) is_checked_owner_phone_number = False if lesson_service.is_checked_phone_number( user_data.get('id'), canceled_lesson.owner_id) is not None: is_checked_owner_phone_number = True return LessonDTO( canceled_lesson, biddings_count=biddings_count, is_checked_owner_phone_number=is_checked_owner_phone_number), None
def add_lesson_bidding(lesson_id): """ :param lesson_id: :return: :error NO_SUCH_ELEMENT EXPIRED_LESSON_BIDDING INVALID_ARGUMENT ELEMENT_ALREADY_EXISTS """ user_data = auth_service.check_permission() lesson_bidding_request = LessonBiddingRequest( request_json=request.get_json()) lesson_bidding = lesson_service.add_lesson_bidding(lesson_id, user_data.get('id'), lesson_bidding_request) return LessonBiddingDTO(lesson_bidding, include_lesson=True), None
def coin_purchase(): """ :return: :error WRONG_RECEIPT ELEMENT_ALREADY_EXISTS """ try: user_data = auth_service.check_permission() coin_service.charge_coins(user_data.get('id'), Receipt(request_json=request.get_json())) logger.debug( LogItem(who=WhoLogItem(request=request), what=WhatLogItem(object_type=ObjectType.PAYMENT), when=WhenLogItem(millis=current_millis()), how=HowLogItem(action='COIN_PURCHASE')).__dict__) except: logger.error(traceback.format_exc()) raise return True, None
def get_user_profile(user_id): """ :param user_id: :return: :parameter phone_number(Bool) :error NO_SUCH_ELEMENT """ user_data = auth_service.check_permission() is_checked_phone_number = StringUtils.to_bool( request.args.get('phone_number')) if is_checked_phone_number and user_service.is_checked_phone_number( user_data.get('id'), user_id): is_checked_phone_number = True else: is_checked_phone_number = False user = user_service.get_user(user_id) is_favorited = False if user_service.get_favorite(user_data.get('id'), user.id) is not None: is_favorited = True return UserDTO(user, is_checked_phone_number=is_checked_phone_number, is_favorited=is_favorited), None
def get_user(user_id): auth_service.check_permission(user_id) user = user_service.get_user(user_id) return UserDTO(user, is_checked_phone_number=True), None
def unfavorite_lesson(lesson_id): user_data = auth_service.check_permission() lesson_service.remove_lesson_favorite(lesson_id, user_data.get('id')) return None, None
def remove_lesson_bidding(lesson_id): user_data = auth_service.check_permission() lesson_service.remove_lesson_bidding(lesson_id, user_data.get('id')) return None, None
def remove_lesson(lesson_id): user_data = auth_service.check_permission() lesson_service.delete_lesson(user_data.get('id'), lesson_id) return True, None
def review_write_user(user_id): auth_service.check_permission(user_id) review_request = ReviewRequest(request_json=request.get_json()) user = user_service.writeReview(user_id, review_request) return ReviewDTO(user_id, user), None
def patch_user(user_id): auth_service.check_permission(user_id) patch_request = UserPatchRequest(request_json=request.get_json()) user = user_service.patch_user(user_id, patch_request) return UserDTO(user, is_checked_phone_number=True), None