commit 40570bdb3e943cc9918a9787c9d02943fbf149c1 Author: b.mohammadrezaie Date: Wed Oct 21 14:13:43 2026 +0000 first commit diff --git a/app.py b/app.py new file mode 100644 index 0000000..27a227c --- /dev/null +++ b/app.py @@ -0,0 +1,147 @@ +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/') +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) \ No newline at end of file