コード例 #1
0
ファイル: dbbase.py プロジェクト: ngquangan/project-web-ttcn
 def create(cls, postId=None):
     request_data = return_request_data()
     coll = db[cls.collection]
     v = Validator(cls.schema)
     if not v.validate(request_data):
         return make_error(status=400, description=v.errors)
     else:
         if cls.__name__ == "User":
             if users.find_one({"username":
                                request_data.get('username')}) is not None:
                 return make_error(
                     400,
                     description="Username is exist, please choose another."
                 )
             request_data["birthday"] = datetime.strptime(
                 request_data.get("birthday"), format_str)
         elif cls.__name__ == "Post":
             request_data["user"] = session.get("username")
             request_data["_create"] = datetime.now()
         elif cls.__name__ == "Comment":
             request_data["postId"] = ObjectId(postId)
             request_data["userId"] = session.get("username")
         result = coll.insert_one(request_data)
         post = coll.find_one({'_id': result.inserted_id})
         logger.warn('Update %r', post)
         return Utils.return_jsonify(post)
コード例 #2
0
def login():
    session.clear()
    request_data = return_request_data()
    if not request_data.get("username", None):
        return make_error(400, description="[username] is required.")

    if not request_data.get("password", None):
        return make_error(400, description="[password] is required.")

    if users.find_one({"username": request_data.get('username')}) is None:
        return make_error(
            400, description="Username is not exist, please choose another.")

    if users.find_one({"password": request_data.get('password')}) is None:
        return make_error(400, description="password is wrong")

    data_user = users.find_one({"username": request_data.get("username")})
    payload = {
        "username":
        request_data.get("username"),
        "exp":
        datetime.utcnow() + timedelta(seconds=JWTConfig.JWT_EXP_DELTA_SECONDS)
    }
    jwt_token = jwt.encode(payload, JWTConfig.JWT_SECRET,
                           JWTConfig.JWT_ALGORITHM)
    return Utils.return_jsonify({'token': jwt_token.decode('utf-8')})
コード例 #3
0
 def update(self, _id=None, postId=None):
     request_data = return_request_data()
     query = {"_id": ObjectId(_id)}
     coll = db[self.collection]
     if coll.find_one(query) is None:
         return make_error(status=400, description="it's not yours")
     request_data["_updated"] = datetime.now()
     result = coll.find_one_and_update(query, {'$set': request_data})
     result = coll.find_one(query)
     return Utils.return_jsonify(result)
コード例 #4
0
ファイル: authAPI.py プロジェクト: ngquangan/project-web-ttcn
 def update(cls, _id=None):
     request_data = return_request_data()
     if request_data.get("birthday", None) is not None:
         request_data["birthday"] = datetime.strptime(
             request_data.get("birthday"), format_str)
     query = {"username": session.get("username")}
     coll = db[cls.collection]
     if coll.find_one(query) is None:
         return make_error(status=400, description="it's not yours")
     result = coll.find_one_and_update(query, {'$set': request_data})
     return Utils.return_jsonify(result)
コード例 #5
0
ファイル: baseAPI.py プロジェクト: ngquangan/project-web-ttcn
 def create(self, postId=None):
     request_data = return_request_data()
     coll = db[self.collection]
     v = Validator(self.schema)
     if not v.validate(request_data):
         return make_error(status=400, description=v.errors)
     else:
         if postId is not None:
             request_data["postId"] = ObjectId(postId)
         request_data["_create"] = datetime.now()
         request_data["_updated"] = datetime.now()
         result = coll.insert_one(request_data)
         post = coll.find_one({'_id': result.inserted_id})
         logger.warn('Update %r', post)
         return Utils.return_jsonify(post)
コード例 #6
0
ファイル: dbbase.py プロジェクト: ngquangan/project-web-ttcn
 def update(cls, _id=None):
     request_data = return_request_data()
     query = {}
     if cls.__name__ == "Post":
         request_data["_updated"] = datetime.now()
         try:
             query = {"_id": ObjectId(_id), "user": session.get("username")}
         except Exception as e:
             return make_error(status=400, description=str(e))
     elif cls.__name__ == "User":
         if request_data.get("birthday", None) is not None:
             request_data["birthday"] = datetime.strptime(
                 request_data.get("birthday"), format_str)
         query = {"username": session.get("username")}
     coll = db[cls.collection]
     if coll.find_one(query) is None:
         return make_error(status=400, description="it's not yours")
     result = coll.find_one_and_update(query, {'$set': request_data})
     return Utils.return_jsonify(result)
コード例 #7
0
def index():
    data = return_request_data()
    return str((data))