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 Return session.userId |
Code Block |
---|
load_token(token): try: decode token exceptexcept 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 |
...
alive = True
...
started alive = True find call_num in |
...
...
database return {'alive’: alive, 'serverUpTime': upTime, 'numTransactions': call_num, 'currentVersion' : "Version 1 release"} |
LogLog
Code Block |
---|
log_health_check(): |
...
create new health check |
...
add call to database
...
call
add call to database |
Code Block |
---|
log_send_invoice(user_id, email_address): |
...
create new send invoice |
...
add call to database
...
call
add call to database |
UBL Extractor
Code Block |
---|
customerContact(xml): |
...
turn xml into string |
...
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
...
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 |