Compare commits
No commits in common. "5b8b323b5cca20003cd90227b34516f504f6c89c" and "40570bdb3e943cc9918a9787c9d02943fbf149c1" have entirely different histories.
5b8b323b5c
...
40570bdb3e
161
app.py
161
app.py
|
|
@ -1,16 +1,147 @@
|
|||
from flask import Flask
|
||||
from .modules.userModuls import *
|
||||
from flask_restful import Resource,Api
|
||||
app = Flask(__name__)
|
||||
api = Api(app)
|
||||
|
||||
api.add_resource(home,'/')
|
||||
api.add_resource(CreateUser,'/add-user')
|
||||
api.add_resource(loginUser,'/login')
|
||||
api.add_resource(GetDetailUser,'/user/detail')
|
||||
api.add_resource(HardDeleteUser, '/user/hard-delete')
|
||||
api.add_resource(SoftDeleteUser, '/user/soft-delete')
|
||||
api.add_resource(RestoreUser, '/user/restore')
|
||||
api.add_resource(UpdateUser, '/user/update')
|
||||
|
||||
from flask import Flask,request
|
||||
import pymongo
|
||||
import time
|
||||
from bson import ObjectId
|
||||
from datetime import datetime, timezone
|
||||
client = pymongo.MongoClient("mongodb://localhost:27017")
|
||||
db = client["bank"]
|
||||
users_collection = db["users"]
|
||||
account_collection = db["accounts"]
|
||||
transaction_collection = db["transactions"]
|
||||
|
||||
|
||||
class User:
|
||||
username = None
|
||||
password = None
|
||||
codemeli = None
|
||||
is_deleted = None
|
||||
created_at = None
|
||||
updated_at =None
|
||||
deleted_at= None
|
||||
def __init__(self):
|
||||
self.created_at = get_current_time()
|
||||
|
||||
|
||||
def get_current_time():
|
||||
return datetime.now(timezone.utc)
|
||||
class Account:
|
||||
acc_type = None
|
||||
acc_num = None
|
||||
balance = None
|
||||
username = None
|
||||
def __init__(self):
|
||||
self.balance=100
|
||||
|
||||
class Transaction:
|
||||
acc_num= None
|
||||
time= None
|
||||
transaction_type= None
|
||||
amount= None
|
||||
def __init__(self):
|
||||
self.time= time.time()
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
@app.route("/")
|
||||
def home():
|
||||
return "hello world"
|
||||
|
||||
|
||||
|
||||
@app.route("/user-list")
|
||||
def get_users():
|
||||
users = []
|
||||
users_in_db = users_collection.find()
|
||||
for user in users_in_db:
|
||||
users.append({
|
||||
"codemeli": user["codemeli"],
|
||||
"username": user["username"]
|
||||
})
|
||||
return users
|
||||
|
||||
@app.route("/add-user",methods=["POST"])
|
||||
def add_user():
|
||||
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
|
||||
|
||||
@app.route("/login",methods=["POST"])
|
||||
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'}
|
||||
|
||||
|
||||
@app.route('/user/<id>')
|
||||
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"]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@app.route('/hard-delete-user', methods=["DELETE"])
|
||||
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
|
||||
|
||||
@app.route('/soft-delete-user', methods=["DELETE"])
|
||||
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"}
|
||||
|
||||
|
||||
@app.route('/restore-user', methods=["POST"])
|
||||
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"}
|
||||
|
||||
|
||||
@app.route('/update-user', methods=["PUT"])
|
||||
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"}
|
||||
|
||||
|
||||
app.run(debug=True)
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
import pymongo
|
||||
client = pymongo.MongoClient("mongodb://localhost:27017")
|
||||
db = client["bank"]
|
||||
users_collection = db["users"]
|
||||
account_collection = db["accounts"]
|
||||
transaction_collection = db["transactions"]
|
||||
32
models.py
32
models.py
|
|
@ -1,32 +0,0 @@
|
|||
from datetime import datetime, timezone
|
||||
import time
|
||||
|
||||
class User:
|
||||
username = None
|
||||
password = None
|
||||
codemeli = None
|
||||
is_deleted = None
|
||||
created_at = None
|
||||
updated_at =None
|
||||
deleted_at= None
|
||||
def __init__(self):
|
||||
self.created_at = get_current_time()
|
||||
|
||||
|
||||
def get_current_time():
|
||||
return datetime.now(timezone.utc)
|
||||
class Account:
|
||||
acc_type = None
|
||||
acc_num = None
|
||||
balance = None
|
||||
username = None
|
||||
def __init__(self):
|
||||
self.balance=100
|
||||
|
||||
class Transaction:
|
||||
acc_num= None
|
||||
time= None
|
||||
transaction_type= None
|
||||
amount= None
|
||||
def __init__(self):
|
||||
self.time= time.time()
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
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"}
|
||||
Loading…
Reference in New Issue