Page 1 of 1

dow Help project4-Aikya5 - webapppy 8 K3 42 Add Configuration... README.md sqlite_doapy webapp.py cli_client.py database

Posted: Sat May 14, 2022 7:01 pm
by answerhappygod
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 1
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 1 (70.63 KiB) Viewed 42 times
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 2
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 2 (63.96 KiB) Viewed 42 times
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 3
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 3 (69.35 KiB) Viewed 42 times
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 4
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 4 (62.84 KiB) Viewed 42 times
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 5
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 5 (58.21 KiB) Viewed 42 times
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 6
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 6 (70.98 KiB) Viewed 42 times
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 7
Dow Help Project4 Aikya5 Webapppy 8 K3 42 Add Configuration Readme Md Sqlite Doapy Webapp Py Cli Client Py Database 7 (59.25 KiB) Viewed 42 times
dow Help project4-Aikya5 - webapppy 8 K3 42 Add Configuration... README.md sqlite_doapy webapp.py cli_client.py database.but console Rapp.route('/auth'. methods("POST", "GET"]). 9 edef authenticate(): 0 1f request.method=="GET": 1 message = dict() 2 message("date") = datetime.now().strftime('%Y') message["text") - "Enter your credentials" return render_template_template-login.html, message message_) 45 else: 46 # TODO: authenticate the user data = request.json 48 user = dict() 49 if data is None: 50 return '{"res":"400", "text":"invalid username or password."} 51 52 If len(date) -8 or not datal 'password') or not datal'email'): 53 return '{"res":"400", "text":"Please enter username and password."}' 54 user'password'] = str(nd(datal 'password').encode()).digest()) 55 user''email'] = data['email'] 56 1f app.get_userdb().authenticate_user(user): 57 message = dict() 58 message("date"] = datetime.now().strftine("%Y') user = app.get_userdb().get_user_by_email(user) Ressage("user" ] = user(0) message("text"] = "Welcome + user(0) 62 session['user'] - user() 63 session['uid' ): user(1) 1f data.get( 'client'): return '{"res":"200", "text":"authenticated user."}' 66 else: return redirect('/user/home') 59 60 61 64 65 67 Python Console Services Database Changes

17 Add Configuration.. README.md sqlite doapy webapppy cli clienty le _main_py * database.txt console #TODO Add the missing routes or complete the logic of the existing routes 2 3 import ... 16 app = PhoneBillServer(name) 18 19 20 edef run(port=8800, file="database.txt"): 21 app.set_port(port) 22 app.set_file(file) 23 Bootstrap_app_) 24 app.start(True) 25 26 27 Bapp.route(/home') 28 Rapp.route(LT) 29 def home(): 30 message = dict() 32 message "date"] =datotine.now().strftine(_'%Y'_) 32 message["file"): app.get_file() 33 messaget"text"] = "Welcome to Phone Bill Application!" 34 14 session.get('user'): 35 message("username"] = Session['user'] 36 return render_template("index.htaccessegesuessage_2 37 38 Rapp.route /auth', methodset"POST". "GET")) 39 def authenticate(): 40 1f request.methods "GET": message = dict() message["date"] = datetime.now().strftine('SY) add phonecall it request method=GET Python Padages Python Console Services Database Changes 13234 LF UTF- 41 42

README.md sqlite doapy webapp.py locll client.pylo_main__.py database.but console x lapp.route /auth!, methodsa ("POST". "GET")) edef authenticate(): if request.method=="GET": 11 message = dict() 42 message("date") - datetime.now().strftime("%Y") 43 message{"text") = "Enter your credentials" 44 return render_template(_"template-login.html", message=nessage_) 45 else: 46 # TODO: authenticate the user 47 data = request.Json 48 user = dict() 49 if data is None: 50 return '{"res":"460", "text": "invalid username or password."} 51 52 1+ len(data) une or not datal 'password'] or not datat 'email'): 53 return '{"res":"400", "text": "Please enter username and password.") 54 usert 'password'] = str(md5(datat password').encode()).digest()) 55 usert 'email'] = data['enail'] If app.get_userdb().authenticate_user(user): message = dict() message{"date"] = datetime.now().strftime('%Y') user app.get_userdb().get_user_by_enail(user) messagel "user"] = user(0) message("text") - "Welcome "user[O] Session['user'] userto) Session['id']: User (1) 1f data.get( 'client'): return {"res":"200", "text": "authenticated user.") else: return redirect('/user/hono') add_phorecallofrequest.methodGET Python Console Services Database Changes 132:34 CALF UTF-8 4 spaces 56 57 58 59 60 61 62 63 64 65 66 4 then Padages

README.md X Add Configuration... sqlite doa.py x webapp.py le cli_client.py * le _main.py * database.brt* console else: return '{"res":"400", "text":"invalid username or password.") 68 69 70 71 72 73 @app.route('/register', methods=["POST", "GET"]) edef register(): #TODO: register the user 74 75 76 77 78 79 80 81 82 83 84 B5 86 87 88 89 90 91 92 93 94 95 96 97 1f request.method -- "GET": == message = dict() message("date") = datetime.now().strftine("%Y') message["text") - "Register as a new user" return render_template("template_register.html", message=message) elif request.method == "POST": data = request.json user = dict() user '10') - str(uuld.ou1d4()) user'name') - datal 'name'] usort'password'] = str(md5(datal 'password').encode()). digest()) user['email'] = data'enail'] message" If app.get_userdb().insert_user(user): message = '{"res":"200", "text":"Your account is active now")' else: message = '{"res": "400", "text": "user name already exist") return message else: return render_template("invalid.page.html", message." bape.route/logout methodsal."GET 12 add phonecall. If request.method="GET

106 Add Configuration... Git README.md X sqlite doa.py webapp.py cli client.py main_py database.but console X 97 Rapp.route('/logout, methods=("GET"1). 98 Edef logout(): 99 session.clear() 100 message = dict() 101 message['user') = "Test User" 102 message("date") - datetime.now().strftine(_'XY'_) 103 message["text") - "Welcome" 104 if request.nethod == "GET": 105 # TODO: authenticate the user return redirect("/home") 107 108 Rapp.route(/user/home'). 109 def user_hone(): 110 1f session('user') and session vid'): 111 message = dict() 112 message("date"] = datetine.now().strftine("%Y') 113 message("usernane" ) Session['user'] messagel"text") - "Welcome "session('user'] 115 return render_templateber.html, message=nessage) 116 else: 117 redirect('/auth) 118 119 Bapp.route /user/search) 120 def user_search(): 121 1f session.get('user') and session.get('uid): 122 Bessage = dict() 123 message"dato") .datetime.now().strftine (L'%Y') 124 message("usernane") - session('user'] 225 messaget*text") - "Welconesesion['user': . The seach function will be available soon! 126 return render_template('andex.html. nessagaessage) add_phonecall it request method="GET Python Pages Python Come Services Boabase Changes 112 CALF VI peces Python2.po = E 114

lp project4-Aikyas - webapp.py 8 Add Configuration... 6 ME.md sqlite_doa.py x le webapp.py cli client.py _main_py database.bct console x Rapp.route(/user/search) edef user_search(): if session.get('user') and session.get('uid'): message = dict() message("date") = datetime.now().strftime(_'%Y') message("username") - session('user') messagel "text") - "Welcome " + session('user')". The seach function will be available soon! return render_template Index.html', message=message) else: redirect('/auth) 19 30 Rapp.coute/user/add.. methods("GET","POST":1). 131 edef add_phonecall(): 1f. request.methodan 'GET': 133 1f session.got('user') and session.get('10'_): 134 return_' "res":"401", "text": "Not implemented") else: 136 redirect('/auth') 137 gather phone call info. 138 elif request.method == 'POST': 1f session.get('user' and session.get('id': 148 #contains phonecall info 141 data = request.Json 142 caller = data['caller') 143 callee = datal callee'] startdate - datal'startdate'] enddate: data onddate') 146 message: 148 16 Util. 1sValid Phone Number(caller) and Util. 1sValidPhone Number(callee): add phonecall it request.methods GET thon Padages 13234 CRLF UTF-8 spaces Pytho 132 135 139 144 & check and validate user data 147 Python Console Services Otabase Changes

WOLLE project4-Aikyas - webapp. py Add Configuration. sqlite_doa.py webapp.py Le cli_client.py x le_main_py x database.txt console x COLLEC startdato - datal'startdate'] enddate datat 'enddate') # check and validate user data message" 14 Ut11.1sValidPhone Number(caller) and Ut11.1sValidPhone Number(callee): phonecall - PhoneCall(_calleo, coller, startdate, enddate_) phonecall.set_uid(session.get('uid')) app.get_userdb().Insert_phonecall(phonecall) tadd the new phone call to the database print (phonecall) B1f Insertion is a success message = '{"res":"200", "text":"added a new phone call"} else: message = '{"res":"400", "text":"invalid phone call attributes") return message else: return '{"res":"401", "text":"Auth failed"}' else: return '{"res":"401", "text":"Method not supported")' 14 33 - nain: Dame run(2 add phonecall. if request methods GET Python Console Services Database Changes