Compare commits
2 Commits
40570bdb3e
...
5b8b323b5c
| Author | SHA1 | Date |
|---|---|---|
|
|
5b8b323b5c | |
|
|
c0a630781c |
161
app.py
161
app.py
|
|
@ -1,147 +1,16 @@
|
||||||
from flask import Flask,request
|
from flask import Flask
|
||||||
import pymongo
|
from .modules.userModuls import *
|
||||||
import time
|
from flask_restful import Resource,Api
|
||||||
from bson import ObjectId
|
app = Flask(__name__)
|
||||||
from datetime import datetime, timezone
|
api = Api(app)
|
||||||
client = pymongo.MongoClient("mongodb://localhost:27017")
|
|
||||||
db = client["bank"]
|
api.add_resource(home,'/')
|
||||||
users_collection = db["users"]
|
api.add_resource(CreateUser,'/add-user')
|
||||||
account_collection = db["accounts"]
|
api.add_resource(loginUser,'/login')
|
||||||
transaction_collection = db["transactions"]
|
api.add_resource(GetDetailUser,'/user/detail')
|
||||||
|
api.add_resource(HardDeleteUser, '/user/hard-delete')
|
||||||
|
api.add_resource(SoftDeleteUser, '/user/soft-delete')
|
||||||
class User:
|
api.add_resource(RestoreUser, '/user/restore')
|
||||||
username = None
|
api.add_resource(UpdateUser, '/user/update')
|
||||||
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)
|
app.run(debug=True)
|
||||||
|
|
@ -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"]
|
||||||
|
|
@ -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()
|
||||||
|
|
@ -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"}
|
||||||
Loading…
Reference in New Issue