Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

 except base exception:

access error

find session in database

 

if session not found:

            Input error

           

Return session

 

Communication report


  
    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

...

 {
  
  check error booleans against error codes
  
  }
  
  for error code in error codes:
  
  include readable message
  
  return communication report

 

Email systemSystem

Code Block
validate_email(email):

...



  if email is in correct format:

...

            return True

else:

            return False

...


  
    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 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

 

...


  
    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