114 lines
3.2 KiB
Python
114 lines
3.2 KiB
Python
from flask import request
|
|
from bson import ObjectId
|
|
from models import User,get_current_time
|
|
from config import users_collection
|
|
from flask_restful import Resource
|
|
|
|
class home (Resource):
|
|
def home():
|
|
return "hello world"
|
|
|
|
class UserList (Resource):
|
|
|
|
def get():
|
|
query=request.args
|
|
filter ={}
|
|
search = query.get('search',None)
|
|
if search:
|
|
filter["username"]={'$regex':search}
|
|
users = []
|
|
users_in_db = users_collection.find(filter)
|
|
for user in users_in_db:
|
|
users.append({
|
|
"codemeli": user["codemeli"],
|
|
"username": user["username"]
|
|
})
|
|
return users
|
|
|
|
class CreateUser (Resource):
|
|
def add_user(self):
|
|
body=request.json
|
|
newUser = User()
|
|
newUser.updated_at = None
|
|
newUser.deleted_at = None
|
|
newUser.username = body["username"]
|
|
newUser.codemeli = body["codemeli"]
|
|
newUser.password = body["password"]
|
|
newUser.is_deleted = False
|
|
if body["username"] == "" or body["codemeli"] == "" or body["password"] == "":
|
|
return {"message": "Fields cannot be empty"}, 400
|
|
users_collection.insert_one(newUser.__dict__)
|
|
return {'message':'You are registered successfully'},201
|
|
|
|
class loginUser (Resource):
|
|
def login():
|
|
body=request.json
|
|
find_user= users_collection.find_one({"username":body["username"],"password":body["password"]})
|
|
if find_user ==None:
|
|
return {'message':'couldnt find'},404
|
|
else:
|
|
return {'message':'You are login successfully'}
|
|
|
|
|
|
class GetDetailUser(Resource):
|
|
def get_user_detail(id):
|
|
user = users_collection.find_one({
|
|
"_id": ObjectId(id)
|
|
})
|
|
if user == None:
|
|
return {"message": "user not found"}, 404
|
|
return {
|
|
"username": user["username"],
|
|
"codemeli": user["codemeli"]
|
|
}
|
|
|
|
|
|
class HardDeleteUser(Resource):
|
|
|
|
def hard_delete_user():
|
|
body = request.json
|
|
id = body["id"]
|
|
result = users_collection.delete_one({
|
|
"_id": ObjectId(id)
|
|
})
|
|
if result.deleted_count == 0:
|
|
return { "message": "user not found"}, 404
|
|
return { "message": "user deleted successfully"}, 204
|
|
|
|
class SoftDeleteUser(Resource):
|
|
|
|
def soft_delete_user():
|
|
body = request.json
|
|
id=body["id"]
|
|
result = users_collection.update_one({"_id":ObjectId(id),"is_deleted":False},{"$set":{"is_deleted":True,"deleted_at": get_current_time()
|
|
}})
|
|
if result.matched_count==0:
|
|
return{"message":"delete failed"},404
|
|
return {"message":"user is deleted successfully"}
|
|
|
|
|
|
class RestoreUser(Resource):
|
|
|
|
def restore_user():
|
|
body = request.json
|
|
id=body["id"]
|
|
result = users_collection.update_one({"_id":ObjectId(id),"is_deleted":True},{"$set":{"is_deleted":False,"is_deleted":None}})
|
|
if result.matched_count==0:
|
|
return{"message":"restore failed"},404
|
|
return {"message":"user is restored successfully"}
|
|
|
|
|
|
class UpdateUser(Resource):
|
|
|
|
def update_user():
|
|
body = request.json
|
|
id = body["id"]
|
|
codemeli = body["codemeli"]
|
|
username = body["username"]
|
|
result = users_collection.update_one({
|
|
"_id": ObjectId(id)
|
|
}, {"$set":{"codemeli": codemeli, "username": username, "updated_at":get_current_time()}})
|
|
if result.matched_count == 0:
|
|
return { "message": "user not found"}, 404
|
|
return { "message": "user updated successfully"}
|