Esempio n. 1
0
    def login(cls, email, pwd):
        # 아이디, pwd 확인
        cls.logger.info("login 진입")
        cls.logger.info(email)
        cls.logger.info(pwd)
        with session_scope() as session:
            customer = session.query(Customer).filter(
                Customer.email == email).first()
            cls.logger.info("{} 조회성공".format(customer.email))
            if customer is None:
                response = set_response("99", {"errorMsg": "존재하지 않는 이메일입니다."})
                return response
            try:
                cid = customer.cid
                cus_pwd = customer.password
                salt = customer.salt
                pwd = AccountUtils.set_pwd(pwd, salt)
                isauth = AccountUtils.chk_pwd(pwd, cus_pwd)
                if isauth:
                    cus = {'email': email, 'uid': cid}
                    access_token = AccountUtils.get_token(cus)
                    response = set_response("00", {"token": access_token})
                else:
                    response = set_response("99", {"errorMsg": '회원정보가 틀렸습니다.'})
            except BaseException as e:
                cls.logger.warning("크리티컬 이슈")
                cls.logger.warning(e)
                response = set_response("99", {"errorMsg": '토큰 생성 실패'})

        cls.logger.info("login response==")
        cls.logger.info(response)
        return response
Esempio n. 2
0
    def get(self, post_id=None):
        try:
            parser = reqparse.RequestParser()
            parser.add_argument('is_grade')  # 채점여부
            parser.add_argument('is_teacher_view')  # 선생확인여부
            parser.add_argument('is_grade_view')  # 내가 확인함
            filters = parser.parse_args()
            user_type = request.args.get('user_type')
            if user_type is not None and user_type == "cus":
                filters['author'] = g.uid

            elif user_type == "teacher":
                if post_id is None:
                    response = set_response("77", "잘못된 접근입니다.")
                    return response
                else:
                    answer_post = AnswerPostService.mysql_fetch_answer_post_p(post_id, True)
                    response = set_response("00", {"answer_post": answer_post})
                    return response

            if post_id is not None:
                answer_post = AnswerPostService.mysql_fetch_answer_post_p(post_id)
                response = set_response("00", {"answer_post": answer_post})
                return response

            count, answer_post = AnswerPostService.mysql_fetch_answer_post(filters)
            response = set_response("00", {"answer_post": answer_post, "count": count})
        except BaseException as e:
            self.logger.warning("answer get error")
            self.logger.warning(e)
            response = set_response("77", {"errorMsg": "답안 요청중 에러가 발생했습니다."})
        return response
Esempio n. 3
0
    def create_user(cls, email, pwd):
        cls.logger.info("create_user")

        cus = None
        try:
            salt = AccountUtils.getn_salt()
            hashed_pwd = AccountUtils.set_pwd(pwd, salt)
            cid = AccountUtils.get_timestamp('CUS')

            with session_scope() as session:
                customer = Customer()
                customer.cid = cid
                customer.salt = salt
                customer.email = email
                customer.password = hashed_pwd
                session.add(customer)
                cus = {'email': email, 'uid': cid}
        except BaseException as e:
            cls.logger.warning("유저 생성중 문제가 발생했습니다.")
            cls.logger.warning(e)
            return set_response("99", {"errorMsg": "유저 생성중 문제가 발생했습니다."})

        try:
            access_token = AccountUtils.get_token(cus)
        except BaseException as e:
            cls.logger.warning("토큰 생성중 에러가 발생했습니다.")
            cls.logger.warning(e)
            return set_response("99", {"errorMsg": "토큰 생성중 에러가 발생했습니다."})
        return set_response("00", {'token': access_token})
Esempio n. 4
0
    def create_user(cls, email, pwd):
        cls.logger.info("create_user Teacher")
        cls.logger.info(email)
        cls.logger.info(pwd)

        cus = None
        try:
            salt = AccountUtils.getn_salt()
            hashed_pwd = AccountUtils.set_pwd(pwd, salt)
            tid = AccountUtils.get_timestamp('TEA')

            with session_scope() as session:
                teacher = Teacher()
                teacher.tid = tid
                teacher.salt = salt
                teacher.email = email
                teacher.password = hashed_pwd
                session.add(teacher)
                tea = {
                    'email': email,
                    'uid': tid
                }
        except BaseException as e:
            cls.logger.warning("유저 생성중 문제가 발생했습니다.")
            cls.logger.warning(e)
            return set_response("99", {"errorMsg": "유저 생성중 문제가 발생했습니다."})

        try:
            access_token = AccountUtils.get_token(tea)
        except BaseException as e:
            cls.logger.warning("토큰 생성중 에러가 발생했습니다.")
            cls.logger.warning(e)
            return set_response("99", {"errorMsg": "토큰 생성중 에러가 발생했습니다."})
        return set_response("00", {'token': access_token})
Esempio n. 5
0
 def mysql_update_answer_post(cls, post_id, comment, score):
     with session_scope() as session:
         answer_model = session.query(AnswerPost).filter(
             AnswerPost.id == post_id).first()
         if answer_model.is_grade == True:
             response = set_response("77", {"errorMsg": "이미 첨삭된 답안입니다."})
         answer_model.is_grade = True
         answer_model.score = score
         answer_model.comment = comment
         response = set_response("00", {"successMsg": "성공적으로 채점되었습니다."})
     return response
Esempio n. 6
0
    def get(self):
        filters = request.args

        try:
            problem_posts = ProblemPostService.mysql_fetch_problem_post(
                filters)
            response = set_response("00", {"problem_posts": problem_posts})
        except BaseException as e:
            self.logger.warning("problem post get error")
            self.logger.warning(e)
            response = set_response("88", {"errorMsg": "알수없는 에러"})
        return response
Esempio n. 7
0
    def post(self):
        try:
            params = request.get_json()
            email = params['email']
            pwd = params['pwd']

            # 이메일 존재하는지
            if not TeaAuthService.IsUseAccount(email):
                response = TeaAuthService.create_user(email, pwd)  # 존재 하지 않다면 회원가입
            else:
                response = set_response("C01", "이미 존재하는 이메일 입니다.")

        except BaseException as e:
            error_msg = "시스템 에러가 발생했습니다."
            self.logger.warning(error_msg)
            self.logger.warning(e)
            response = set_response("01", error_msg)
        return jsonify(response)
Esempio n. 8
0
 def put(self, post_id=None):
     try:
         params = request.get_json()
         comment = params['comment']
         score = params['score']
         response = AnswerPostService.mysql_update_answer_post(post_id, comment, score)
     except BaseException as e:
         self.logger.warning(e)
         self.logger.warning("answer put!")
         response = set_response("88", {"errorMsg": "문제 채점중 에러가 발생했습니다."})
     return response
Esempio n. 9
0
 def login(cls, email, pwd):
     # 아이디, pwd 확인
     with session_scope() as session:
         teacher = session.query(Teacher).filter(Teacher.email == email).first()
         if teacher is None:
             response = set_response("99", {"errorMsg": "존재하지 않는 이메일입니다."})
             return response
         tid = teacher.tid
         cus_pwd = teacher.password
         salt = teacher.salt
         pwd = AccountUtils.set_pwd(pwd, salt)
         isauth = AccountUtils.chk_pwd(pwd, cus_pwd)
         if isauth:
             cus = {
                 'email': email,
                 'uid': tid
             }
             access_token = AccountUtils.get_token(cus)
             response = set_response("00", {"token": access_token})
         else:
             response = set_response("99", {"errorMsg": '회원정보가 틀렸습니다.'})
     return response
Esempio n. 10
0
    def post(self):
        try:
            params = request.get_json()
            email = params['email']
            pwd = params['pwd']

            # 로그인
            response = TeaAuthService.login(email, pwd)

        except BaseException as e:
            error_msg = "시스템 에러가 발생했습니다."
            self.logger.warning(error_msg)
            self.logger.warning(e)
            response = set_response("01", error_msg)
        return jsonify(response)
Esempio n. 11
0
    def mysql_create_answer_post(cls, params, file=None):
        answer_post = {}
        if file is not None:
            img_path = upload_img('answers', file)
            params['answer_img'] = img_path

        with session_scope() as session:
            now = int(dt.now().timestamp() * 10000000)

            params['created_at'] = now
            params['updated_at'] = now
            answer_post_model = AnswerPost(**params)
            session.add(answer_post_model)
            response = set_response("00", {"img_url": img_path})
        cls.logger.info(response)
        return response
Esempio n. 12
0
    def mysql_create_problem_post(cls, params, file=None):
        problem_post = {}
        if file is not None:
            img_path = upload_img('problems', file)
            params['problem_img'] = img_path

        with session_scope() as session:
            now = int(dt.now().timestamp() * 10000000)
            params['view'] = 0
            params['created_at'] = now
            params['updated_at'] = now
            problem_post_model = ProblemPost(**params)
            session.add(problem_post_model)
            response = set_response("00", {"successMsg": "성공적으로 등록되었습니다."})

        return response
Esempio n. 13
0
    def post(self):
        self.logger.info("---> ProblemPost create")
        try:
            params = request.get_json()
            self.logger.info(params)
            if params is None:
                parser = reqparse.RequestParser()
                parser.add_argument('max_time')
                parser.add_argument('title')
                parser.add_argument('sub_title')
                parser.add_argument('subject')
                parser.add_argument('category')
                parser.add_argument('author')
                parser.add_argument('affiliation')
                args = parser.parse_args()
                self.logger.info(args)
                params = {
                    'max_time': args.max_time,
                    'title': args.title,
                    'sub_title': args.sub_title,
                    'subject': args.subject,
                    'category': args.category,
                    'author': args.author,
                    'affiliation': args.affiliation
                }
                self.logger.info("파라미터")
                self.logger.info(params)

            file = request.files['file']

            self.logger.info(params)
            self.logger.info(file)
            response = ProblemPostService.mysql_create_problem_post(
                params, file)
            print(file)
        except BaseException as e:
            self.logger.info("problemPost create params error")
            self.logger.info(e)
            response = set_response("88", {"errorMsg": "문제를 생성중 에러가 발생했습니다."})

        return response
Esempio n. 14
0
    def post(self, post_id=None):
        self.logger.info("---> ProblemPost create")
        author = g.uid
        if author is None:
            return abort(401)

        try:
            params = request.get_json()
            self.logger.info(params)
            if params is None:
                parser = reqparse.RequestParser()
                parser.add_argument('time')
                parser.add_argument('is_over')
                parser.add_argument('problem_post')
                args = parser.parse_args()
                self.logger.info(args)
                params = {
                    'time': args.time,
                    'is_over': True if args.is_over == "true" else False,
                    'problem_post': args.problem_post,
                    'author': author
                }
                self.logger.info("파라미터")
                self.logger.info(params)

            file = request.files['file']

            self.logger.info(params)
            self.logger.info(file)
            response = AnswerPostService.mysql_create_answer_post(params, file)
            print(file)
        except BaseException as e:
            self.logger.info("answer create params error")
            self.logger.info(e)
            response = set_response("88", {"errorMsg": "문제를 생성중 에러가 발생했습니다."})

        return response