commit c0a630781c9ea94514c13bf63cdb13c5fb4e1cd4 Author: baharm Date: Mon Oct 26 11:42:15 2026 +0330 second commit diff --git a/app.py b/app.py new file mode 100644 index 0000000..fa0f8b2 --- /dev/null +++ b/app.py @@ -0,0 +1,16 @@ +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') + +app.run(debug=True) \ No newline at end of file diff --git a/config.py b/config.py new file mode 100644 index 0000000..587d216 --- /dev/null +++ b/config.py @@ -0,0 +1,6 @@ +import pymongo +client = pymongo.MongoClient("mongodb://localhost:27017") +db = client["bank"] +users_collection = db["users"] +account_collection = db["accounts"] +transaction_collection = db["transactions"] \ No newline at end of file diff --git a/models.py b/models.py new file mode 100644 index 0000000..635d561 --- /dev/null +++ b/models.py @@ -0,0 +1,32 @@ +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() diff --git a/modules/userModuls.py b/modules/userModuls.py new file mode 100644 index 0000000..4108632 --- /dev/null +++ b/modules/userModuls.py @@ -0,0 +1,113 @@ +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"}