def create_boards(request_user_id=None): request_params = request.get_json() title = request_params.get('title') content = request_params.get('content') request_params['userId'] = request_user_id is_notice = request_params.get('isNotice') user = db.session.query(User).get(request_user_id) if title is None: return jsonify(userMessage="제목을 입력해주세요."), 400 if content is None: return jsonify(userMessage="내용을 입력해주세요."), 400 if is_notice == True: if user.is_admin == 0: return jsonify(userMessage="공지사항은 관리자만 작성할 수 있습니다.") try: board = Board() board = board.update_data(**request_params) db.session.add(board) db.session.commit() q = db.session.query(Board, User).outerjoin( User, User.id == Board.user_id).filter(Board.id == board.id) return jsonify(data=SerializableModelMixin.serialize_row(q.one())), 200 except Exception as e: print e.message return jsonify(userMessage="오류가 발생했습니다. 관리자에게 문의해주세요."), 403
def get_board_by_id(board_id, request_user_id=None): try: q = db.session.query(Board, User).outerjoin( User, User.id == Board.user_id).filter(Board.id == board_id) return jsonify(data=SerializableModelMixin.serialize_row(q.one())), 200 except: return jsonify(userMessage="게시물을 찾을 수 없습니다."), 404
def update_boards(board_id, request_user_id=None): try: q = db.session.query(Board, User).outerjoin(User, User.id == Board.user_id).filter(Board.id == board_id) if q is not None: (board, user) = q.one() except: return jsonify( userMessage="게시물을 찾을 수 없습니다." ), 404 user = db.session.query(User).get(request_user_id) if user is None: return jsonify( userMessage="유저 정보를 찾을 수 없습니다." ) if board.user_id != user.id: return jsonify( userMessage="본인만 수정할 수 있습니다." ) request_params = request.get_json() board = board.update_data(**request_params) db.session.commit() return jsonify( data=SerializableModelMixin.serialize_row(q.one()) )
def create_comments(meal_date_id, request_user_id=None): request_params = request.get_json() content = request_params.get('content') request_params['mealDateId'] = meal_date_id request_params['userId'] = request_user_id if content is None: return jsonify(userMessage="내용을 입력해주세요."), 400 if meal_date_id is None: return jsonify(userMessage="댓글을 작성할 식단날짜를 입력해주세요."), 400 try: meal_date = db.session.query(MealDate).filter( MealDate.id == meal_date_id).one() except: return jsonify(userMessage="댓글 작성할 식단날짜를 잘못 선택하셨습니다.") if request_user_id is None: return jsonify(userMessage="유저 정보가 없습니다."), 400 try: comment = Comment() comment = comment.update_data(**request_params) db.session.add(comment) db.session.commit() q = db.session.query(Comment, User) \ .outerjoin(User, User.id == Comment.user_id) \ .filter(Comment.id == comment.id) return jsonify(data=SerializableModelMixin.serialize_row(q.one())), 200 except: return jsonify( userMessage="server deny your request, check param value"), 403
def get_meal_date_by_id(meal_date_id): try: meal_date = db.session.query(MealDate, Meal) \ .join(Meal, Meal.id == MealDate.meal_id) \ .filter(MealDate.id == meal_date_id) return jsonify( data=SerializableModelMixin.serialize_row(meal_date.one())), 200 except: return jsonify(userMessage="해당 식단 날짜를 찾을 수 없습니다."), 404
def get_board_by_id(board_id, request_user_id=None): try: q = db.session.query(Board, User).outerjoin(User, User.id == Board.user_id).filter(Board.id == board_id) return jsonify( data=SerializableModelMixin.serialize_row(q.one()) ), 200 except: return jsonify( userMessage="게시물을 찾을 수 없습니다." ), 404
def get_comment_by_id(meal_date_id, comment_id, request_user_id=None): comment = db.session.query(Comment, User) \ .outerjoin(User, User.id == Comment.user_id) \ .filter(Comment.id == comment_id) if comment is None: return jsonify(userMessage="댓글을 찾을 수 없습니다."), 400 return jsonify( data=SerializableModelMixin.serialize_row(comment.one())), 200
def get_menu_store_relation_by_id(menu_store_relation_id): try: q = db.session.query(MenuStoreRelation, Menu, Store) \ .outerjoin(Menu, Menu.id == MenuStoreRelation.menu_id) \ .outerjoin(Store, Store.id == MenuStoreRelation.store_id) \ .filter(MenuStoreRelation.id == menu_store_relation_id) return jsonify(data=SerializableModelMixin.serialize_row(q.one())), 200 except: return jsonify(userMessage="해당 관계를 찾을 수 없습니다."), 404
def get_group_by_id(course_id, group_id): try: group = Group.get_query(filter_condition=(Group.id == group_id)) return jsonify( data=SerializableModelMixin.serialize_row(group.one()) ), 200 except: return jsonify( userMessage="해당 반을 찾을 수 없습니다." ), 404
def get_homework_by_id(group_id, homework_id): try: homework = Homework.get_query(filter_condition=(Homework.id == homework_id)) return jsonify( data=SerializableModelMixin.serialize_row(homework.one()) ), 200 except: return jsonify( userMessage="해당 숙제를 찾을 수 없습니다." ), 404
def get_answer_by_id(answer_id): try: answer = Answer.get_query( filter_condition=(Answer.id == answer_id)) return jsonify( data=SerializableModelMixin.serialize_row(answer.one()) ), 200 except: return jsonify( userMessage="해당 답안을 찾을 수 없습니다." ), 404
def get_user_homework_relation_by_id(user_homework_relation_id): try: user_homework_relation = UserHomeworkRelation.get_query( filter_condition=(UserHomeworkRelation.id == user_homework_relation_id)) return jsonify( data=SerializableModelMixin.serialize_row(user_homework_relation.one()) ), 200 except: return jsonify( userMessage="해당 관계를 찾을 수 없습니다." ), 404
def get_store_comment_by_id(store_id, store_comment_id, request_user_id=None): store_comment = db.session.query(StoreComment, User) \ .outerjoin(User, User.id == StoreComment.user_id) \ .filter(StoreComment.id == store_comment_id) if store_comment is None: return jsonify( userMessage="댓글을 찾을 수 없습니다." ), 400 return jsonify( data=SerializableModelMixin.serialize_row(store_comment.one()) ), 200
def get_meal_date_by_id(meal_date_id): try: meal_date = db.session.query(MealDate, Meal) \ .join(Meal, Meal.id == MealDate.meal_id) \ .filter(MealDate.id == meal_date_id) return jsonify( data=SerializableModelMixin.serialize_row(meal_date.one()) ), 200 except: return jsonify( userMessage="해당 식단 날짜를 찾을 수 없습니다." ), 404
def get_comment_by_id(meal_date_id, comment_id, request_user_id=None): comment = db.session.query(Comment, User) \ .outerjoin(User, User.id == Comment.user_id) \ .filter(Comment.id == comment_id) if comment is None: return jsonify( userMessage="댓글을 찾을 수 없습니다." ), 400 return jsonify( data=SerializableModelMixin.serialize_row(comment.one()) ), 200
def get_menu_date_relation_by_id(menu_date_relation_id): try: q = db.session.query(MenuDateRelation, Menu, MealDate) \ .outerjoin(Menu, Menu.id == MenuDateRelation.menu_id) \ .outerjoin(MealDate, MealDate.id == MenuDateRelation.meal_date_id) \ .filter(MenuDateRelation.id == menu_date_relation_id) return jsonify( data=SerializableModelMixin.serialize_row(q.one()) ), 200 except: return jsonify( userMessage="해당 관계를 찾을 수 없습니다." ), 404
def get_homeworks(group_id=0): if group_id != 0: filter_condition = (Homework.group_id == group_id) else: filter_condition = None q = Homework.get_query(filter_condition=filter_condition) # start date end date 처리 if request.args.get('date1') is None: date1 = datetime.date.today() print request.args.get('date') else: date1 = datetime.datetime.strptime(request.args.get('date1'), "%Y-%m-%d") print request.args.get('date1') if request.args.get('date2') is None: date2 = datetime.date.today() print request.args.get('date') else: date2 = datetime.datetime.strptime(request.args.get('date2'), "%Y-%m-%d") print request.args.get('date2') homeworks = q.filter(Homework.date.between(date1, date2)).order_by(Homework.id) prev_date = None return_object = {} for row in homeworks: # homework, group, course를 dictionary화 하기 (homework, group, course) = row if prev_date != homework.date: return_object[str(homework.date)] = [] prev_date = homework.date homework_object = SerializableModelMixin.serialize_row(row) # 위에서 생성된 dictionary에 user 정보 추가해서 보내주기 user_homework_relations = db.session.query(UserHomeworkRelation).filter( UserHomeworkRelation.homework_id == homework.id) total_user_number = user_homework_relations.count() is_submitted_number = user_homework_relations.filter(UserHomeworkRelation.is_submitted == True).count() homework_object['users'] = {'isSubmitted': is_submitted_number, 'count': total_user_number} return_object[str(homework.date)].append(homework_object) return jsonify( data=return_object ), 200
def create_comments(meal_date_id, request_user_id=None): request_params = request.get_json() content = request_params.get('content') request_params['mealDateId'] = meal_date_id request_params['userId'] = request_user_id if content is None: return jsonify( userMessage="내용을 입력해주세요." ), 400 if meal_date_id is None: return jsonify( userMessage="댓글을 작성할 식단날짜를 입력해주세요." ), 400 try: meal_date = db.session.query(MealDate).filter(MealDate.id == meal_date_id).one() except: return jsonify( userMessage="댓글 작성할 식단날짜를 잘못 선택하셨습니다." ) if request_user_id is None: return jsonify( userMessage="유저 정보가 없습니다." ), 400 try: comment = Comment() comment = comment.update_data(**request_params) db.session.add(comment) db.session.commit() q = db.session.query(Comment, User) \ .outerjoin(User, User.id == Comment.user_id) \ .filter(Comment.id == comment.id) return jsonify( data=SerializableModelMixin.serialize_row(q.one()) ), 200 except: return jsonify( userMessage="server deny your request, check param value" ), 403
def get_answers(): if request.args.get('userId') is not None: user_id = int(request.args.get('userId')) else: user_id = 0 if request.args.get('homeworkId'): homework_id = int(request.args.get('homeworkId')) problems = db.session.query(Problem).filter(Problem.homework_id == homework_id).order_by(Problem.id) else: homework_id = 0 problems = db.session.query(Problem).order_by(Problem.id) if user_id >= 1 and homework_id >= 1: filter_condition = (Answer.user_id == user_id, Problem.homework_id == homework_id) elif user_id >= 1 >= homework_id: filter_condition = (Answer.user_id == user_id) elif homework_id >= 1 >= user_id: filter_condition = (Problem.homework_id == homework_id) else: filter_condition = None answers = Answer.get_query(filter_condition=filter_condition).order_by(Answer.user_id, Answer.problem_id) prev_user_id = None return_object = {} for row in answers: print "a" (answer, user, problem, homework) = row if prev_user_id != user.id: return_object[user.name] = [] prev_user_id = user.id print "b" return_object[user.name].append(SerializableModelMixin.serialize_row(row)) # 문제 목록 쫙 호출하기 return_object['problems'] = map(lambda x: x.serialize(), problems) return jsonify( # data=map(SerializableModelMixin.serialize_row, answer) data=return_object ), 200
def create_boards(request_user_id=None): request_params = request.get_json() title = request_params.get('title') content = request_params.get('content') request_params['userId'] = request_user_id is_notice = request_params.get('isNotice') user = db.session.query(User).get(request_user_id) if title is None: return jsonify( userMessage="제목을 입력해주세요." ), 400 if content is None: return jsonify( userMessage="내용을 입력해주세요." ), 400 if is_notice == True: if user.is_admin == 0: return jsonify( userMessage="공지사항은 관리자만 작성할 수 있습니다." ) try: board = Board() board = board.update_data(**request_params) db.session.add(board) db.session.commit() q = db.session.query(Board, User).outerjoin(User, User.id == Board.user_id).filter(Board.id == board.id) return jsonify( data=SerializableModelMixin.serialize_row(q.one()) ), 200 except Exception as e: print e.message return jsonify( userMessage="오류가 발생했습니다. 관리자에게 문의해주세요." ), 403
def update_boards(board_id, request_user_id=None): try: q = db.session.query(Board, User).outerjoin( User, User.id == Board.user_id).filter(Board.id == board_id) if q is not None: (board, user) = q.one() except: return jsonify(userMessage="게시물을 찾을 수 없습니다."), 404 user = db.session.query(User).get(request_user_id) if user is None: return jsonify(userMessage="유저 정보를 찾을 수 없습니다.") if board.user_id != user.id: return jsonify(userMessage="본인만 수정할 수 있습니다.") request_params = request.get_json() board = board.update_data(**request_params) db.session.commit() return jsonify(data=SerializableModelMixin.serialize_row(q.one()))
def get_problem_by_id(homework_id, problem_id): # try: q = Problem.get_query(filter_condition=(Problem.id == problem_id)) return jsonify( data=SerializableModelMixin.serialize_row(q) ), 200