backendClass/modules/userModuls.py

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"}