Find below the PSEUDOCODE for relevant functions:
Authentication
Code Block |
---|
create user(email, username, password):
// Check email if email is valid
validate_email(email)
// check if username is invalid
If len(username) > 100 and len(username) < 5:
Input error
// check if password is invalid
If len(password) > 100 and len(password) < 5:
Input error
Hash password
// check for duplicate email
If other user has same email:
Input error
Create new user
Add user to database
Return success = True |
Code Block |
---|
create_session(username, password):
hash password
Find user in database
If user not found:
Input error
Create new session
Add session to database
Create token
Return token |
Code Block |
---|
remove_session(token):
session = load_token(token)
Remove session from database
Return {} |
Code Block |
---|
check_token(token):
Session = load_token(token)
Return session.userId |
Code Block |
---|
load_token(token):
try:
decode token
except base exception:
access error
find session in database
if session not found:
Input error
Return session |
Communication report
Code Block |
---|
communication_report(error_codes, time_sent):
communication report = {
check error booleans against error codes
}
for error code in error codes:
include readable message
return communication report |
Email System
Code Block |
---|
validate_email(email):
if email is in correct format:
return True
else:
return False |
Code Block |
---|
send_email(xml, timer_start):
error_codes = []
contacts = customerContact(xml)
if xml does not exist or is empty:
append 1 to error_codes
if xml size > 10485760:
append 2 to error_codes
if not validate_email(contacts[‘cust_email’):
append 3 to error_codes
if any error codes:
raise Input error
create email
try:
send mail
return communication_report(error_codes, timer_start) , contacts[‘cust_email’] |
Health check
Code Block |
---|
healthCheckInfo():
upTime = current time – time server started
alive = True
find call_num in database
return {'alive’: alive, 'serverUpTime': upTime, 'numTransactions': call_num, 'currentVersion' : "Version 1 release"} |
Log
Code Block |
---|
log_health_check():
create new health check call
add call to database |
Code Block |
---|
log_send_invoice(user_id, email_address):
create new send invoice call
add call to database |
UBL Extractor
Code Block |
---|
customerContact(xml):
turn xml into string invoice
find customer in xml
find customer info in customer
find contact info from the customer info
find seller in xml
find seller info in customer
find contact info from the seller info
add customer contact info and seller info to dictionary
return contact dictionary |