101 lines
2.6 KiB
Python
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'] |