VirtualEconomy/accounts.py

101 lines
2.6 KiB
Python

import random
import pymongo
import time
from werkzeug.security import *
client = pymongo.MongoClient(os.getenv("MONGO_URL"))
db = client.VE
def create_account(name, email, password):
coll = db.accounts
user = coll.find_one({"email": email})
if user is not None:
print("An account using that email has already been created..")
return
code = random.randint(000000, 999999)
coll.insert_one({"_id": code, "email": email, "password": generate_password_hash(password, "scrypt"), "name": name, "account_status": "default", "job": None, "education": 1})
return code
def find_account(code = None, email = None, password = None):
coll = db.accounts
if email is not None and password is not None:
user = coll.find_one({"email": email})
user_encrypt_pass = user["password"]
if user is None:
print("An account with that email could not be found..")
return None
is_password_correct = check_password_hash(user_encrypt_pass, password)
if is_password_correct is False:
print("The password entered is incorrect..")
return None
return user['_id']
user = coll.find_one({"_id": code})
if user is None:
print("That account could not be found..")
return None
return code
def get_user_name(code):
coll = db.accounts
user = coll.find_one({"_id": code})
if user is None:
print("The user does not have an account")
return None
return user['name']
def get_account_status(code):
coll = db.accounts
user = coll.find_one({"_id": code})
if user is None:
print("The user does not have an account")
return None
return user['account_status']
def assign_job(code, job_id):
account_coll = db.accounts
job_coll = db.jobs
user = account_coll.find_one({"_id": code})
job = job_coll.find_one({"_id": job_id})
if user is None or job is None:
print("Either that user doesn't exist, or the job doesn't exist")
return None
user_education = user['education']
job_education = job['education']
if user_education < job_education:
print("We are sorry, but you are not qualified for this job."
"Please go to the education center to get a higher education level.")
time.sleep(1)
return False
else:
account_coll.update_one({"_id": code}, {"$set": {"job": job_id}})
return True
def get_user_job(code):
coll = db.accounts
user = coll.find_one({"_id": code})
if user is None:
print("That user could not be found")
return None
return user['job']