PageRenderTime 90ms CodeModel.GetById 42ms RepoModel.GetById 1ms app.codeStats 0ms

/OnlineAddressBook/server.rb

https://github.com/DerekFangming/ArchivedProjects
Ruby | 1008 lines | 974 code | 23 blank | 11 comment | 127 complexity | d78fa0204ae848bbb1ce757fce90206c MD5 | raw file
  1. ##
  2. # This is a simple Web server, mainly for serving static content with some JavaScript
  3. # in order to get started building a Web site.
  4. #
  5. # gpollice
  6. ##
  7. #add the lib folder to the path
  8. $: << File.expand_path(File.dirname(__FILE__) + "/lib")
  9. require 'sinatra'
  10. require 'pgdb'
  11. enable :sessions
  12. set :public_folder, File.dirname(__FILE__) + '/public'
  13. get '/' do
  14. session["cookie"] ||= nil
  15. erb :index
  16. end
  17. get '/register' do
  18. erb :register
  19. end
  20. post '/signup' do
  21. username = params[:usernamesignup]
  22. password = params[:passwordsignup]
  23. password_confirm = params[:passwordsignup_confirm]
  24. usage = 0;
  25. conn = connectToDB(ENV['DATABASE_URL'])
  26. password_indb = "SELECT password FROM users_table WHERE username = '#{username}'"
  27. results = conn.exec(password_indb)
  28. if password_confirm == password
  29. if results.ntuples() !=0
  30. @message = "&nbsp;&nbsp;Username already exists!"
  31. erb :register
  32. else
  33. pass = "INSERT INTO users_table VALUES('#{params[:firstnamesignup]}','#{params[:lastnamesignup]}','#{username}','#{password}','#{params[:emailsignup]}','#{params[:year]}','#{params[:month]}','#{params[:day]}','#{params[:Gender]}','#{usage}')"
  34. result = conn.exec(pass)
  35. session["cookie"] = username
  36. time = Time.now.hour
  37. if time >=12 && time < 18
  38. @greeting="Good afternoon,"
  39. elsif time >=6 && time <12
  40. @greeting="Good morning,"
  41. else
  42. @greeting="It's sleep time,"
  43. end
  44. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  45. gender_result = conn.exec(gender)
  46. if gender_result.getvalue(0,0).eql? "male"
  47. @call = "Mr.&nbsp;"
  48. else
  49. @call = "Mrs.&nbsp;"
  50. end
  51. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  52. lname_result = conn.exec(lname)
  53. if lname_result.getvalue(0,0).eql? ""
  54. @name = "Foo"
  55. else
  56. @name = lname_result.getvalue(0,0)
  57. end
  58. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  59. usg_result = conn.exec(usg)
  60. usg_value = usg_result.getvalue(0,0)
  61. if usg_value.eql? "1" or usg_value.eql? "0"
  62. @usageMsg = usg_value + " contact"
  63. else
  64. @usageMsg = usg_value + " contacts"
  65. end
  66. if !usg_value.eql? "0"
  67. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  68. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  69. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  70. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  71. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  72. name_array_result= conn.exec(name_array)
  73. phone_array_result= conn.exec(phone_array)
  74. email_array_result= conn.exec(email_array)
  75. msn_array_result= conn.exec(msn_array)
  76. gender_array_result= conn.exec(gender_array)
  77. $i = 0;
  78. @contactCode=""
  79. while $i < usg_value.to_i do
  80. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  81. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  82. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  83. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  84. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  85. $i += 1
  86. end
  87. end
  88. erb :home
  89. end
  90. else
  91. @message = "&nbsp;&nbsp;Try again. Two passwords are not the same."
  92. erb :register
  93. end
  94. end
  95. post '/login' do
  96. username = params[:username]
  97. password = params[:password]
  98. conn = connectToDB(ENV['DATABASE_URL'])
  99. password_indb = "SELECT password FROM users_table WHERE username = '#{username}'"
  100. results = conn.exec(password_indb)
  101. if results.ntuples() == 0
  102. @message = "Try again. User doesn't exist!"
  103. erb :index
  104. elsif results.getvalue(0,0) == password
  105. session["cookie"] = username
  106. time = Time.now.hour
  107. if time >=12 && time < 18
  108. @greeting="Good afternoon,"
  109. elsif time >=6 && time <12
  110. @greeting="Good morning,"
  111. else
  112. @greeting="It's sleep time,"
  113. end
  114. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  115. gender_result = conn.exec(gender)
  116. if gender_result.getvalue(0,0).eql? "male"
  117. @call = "Mr.&nbsp;"
  118. else
  119. @call = "Mrs.&nbsp;"
  120. end
  121. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  122. lname_result = conn.exec(lname)
  123. if lname_result.getvalue(0,0).eql? ""
  124. @name = "Foo"
  125. else
  126. @name = lname_result.getvalue(0,0)
  127. end
  128. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  129. usg_result = conn.exec(usg)
  130. usg_value = usg_result.getvalue(0,0)
  131. if usg_value.eql? "1" or usg_value.eql? "0"
  132. @usageMsg = usg_value + " contact"
  133. else
  134. @usageMsg = usg_value + " contacts"
  135. end
  136. if !usg_value.eql? "0"
  137. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  138. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  139. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  140. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  141. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  142. name_array_result= conn.exec(name_array)
  143. phone_array_result= conn.exec(phone_array)
  144. email_array_result= conn.exec(email_array)
  145. msn_array_result= conn.exec(msn_array)
  146. gender_array_result= conn.exec(gender_array)
  147. $i = 0;
  148. @contactCode=""
  149. while $i < usg_value.to_i do
  150. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  151. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  152. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  153. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  154. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  155. $i += 1
  156. end
  157. end
  158. erb :home
  159. else
  160. @message = "Try again. Password incorrest"
  161. erb :index
  162. end
  163. end
  164. get '/changeprofile' do
  165. if session["cookie"] == nil
  166. erb :index
  167. # should be somewhere else
  168. else
  169. username = session["cookie"]
  170. @usr = username
  171. conn = connectToDB(ENV['DATABASE_URL'])
  172. firstname = "SELECT firstname FROM users_table WHERE username = '#{username}'"
  173. firstname_result = conn.exec(firstname)
  174. if !firstname_result.getvalue(0,0).eql? "na"
  175. @firstname = firstname_result.getvalue(0,0)
  176. end
  177. lastname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  178. lastname_result = conn.exec(lastname)
  179. if !lastname_result.getvalue(0,0).eql? "na"
  180. @lastname = lastname_result.getvalue(0,0)
  181. end
  182. email = "SELECT email FROM users_table WHERE username = '#{username}'"
  183. email_result = conn.exec(email)
  184. if !email_result.getvalue(0,0).eql? "na"
  185. @email = email_result.getvalue(0,0)
  186. end
  187. month = "SELECT month FROM users_table WHERE username = '#{username}'"
  188. month_result = conn.exec(month)
  189. if !month_result.getvalue(0,0).eql? "na"
  190. monthNum = month_result.getvalue(0,0)
  191. if monthNum.eql? "1"
  192. @jan = "selected"
  193. elsif monthNum.eql? "2"
  194. @feb = "selected"
  195. elsif monthNum.eql? "3"
  196. @mar = "selected"
  197. elsif monthNum.eql? "4"
  198. @apr = "selected"
  199. elsif monthNum.eql? "5"
  200. @may = "selected"
  201. elsif monthNum.eql? "6"
  202. @jun = "selected"
  203. elsif monthNum.eql? "7"
  204. @jul = "selected"
  205. elsif monthNum.eql? "8"
  206. @aug = "selected"
  207. elsif monthNum.eql? "9"
  208. @sep = "selected"
  209. elsif monthNum.eql? "10"
  210. @oct = "selected"
  211. elsif monthNum.eql? "11"
  212. @nov = "selected"
  213. elsif monthNum.eql? "12"
  214. @dec = "selected"
  215. end
  216. end
  217. day = "SELECT day FROM users_table WHERE username = '#{username}'"
  218. day_result = conn.exec(day)
  219. if !day_result.getvalue(0,0).eql? "na"
  220. @day = day_result.getvalue(0,0)
  221. @dayselected = "selected"
  222. end
  223. year = "SELECT year FROM users_table WHERE username = '#{username}'"
  224. year_result = conn.exec(year)
  225. if !year_result.getvalue(0,0).eql? "na"
  226. @year = year_result.getvalue(0,0)
  227. @yearselected = "selected"
  228. end
  229. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  230. gender_result = conn.exec(gender)
  231. if !gender_result.getvalue(0,0).eql? "na"
  232. if gender_result.getvalue(0,0).eql? "male"
  233. @male = "selected"
  234. elsif gender_result.getvalue(0,0).eql? "female"
  235. @female = "selected"
  236. end
  237. end
  238. erb :update
  239. end
  240. end
  241. post '/saveprofileupdate' do
  242. username = session["cookie"]
  243. conn = connectToDB(ENV['DATABASE_URL'])
  244. pass = "UPDATE users_table SET firstname = '#{params[:firstnamesignup]}', lastname = '#{params[:lastnamesignup]}', email = '#{params[:emailsignup]}', year = '#{params[:year]}', month = '#{params[:month]}', day = '#{params[:day]}', gender = '#{params[:Gender]}' WHERE username = '#{username}'"
  245. result = conn.exec(pass)
  246. time = Time.now.hour
  247. if time >=12 && time < 18
  248. @greeting="Good afternoon,"
  249. elsif time >=6 && time <12
  250. @greeting="Good morning,"
  251. else
  252. @greeting="It's sleep time,"
  253. end
  254. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  255. gender_result = conn.exec(gender)
  256. if gender_result.getvalue(0,0).eql? "male"
  257. @call = "Mr.&nbsp;"
  258. else
  259. @call = "Mrs.&nbsp;"
  260. end
  261. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  262. lname_result = conn.exec(lname)
  263. if lname_result.getvalue(0,0).eql? ""
  264. @name = "Foo"
  265. else
  266. @name = lname_result.getvalue(0,0)
  267. end
  268. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  269. usg_result = conn.exec(usg)
  270. usg_value = usg_result.getvalue(0,0)
  271. if usg_value.eql? "1" or usg_value.eql? "0"
  272. @usageMsg = usg_value + " contact"
  273. else
  274. @usageMsg = usg_value + " contacts"
  275. end
  276. if !usg_value.eql? "0"
  277. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  278. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  279. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  280. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  281. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  282. name_array_result= conn.exec(name_array)
  283. phone_array_result= conn.exec(phone_array)
  284. email_array_result= conn.exec(email_array)
  285. msn_array_result= conn.exec(msn_array)
  286. gender_array_result= conn.exec(gender_array)
  287. $i = 0;
  288. @contactCode=""
  289. while $i < usg_value.to_i do
  290. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  291. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  292. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  293. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  294. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  295. $i += 1
  296. end
  297. end
  298. erb :home
  299. end
  300. post '/changepasswordupdate' do
  301. username = session["cookie"]
  302. password = params[:oldpassword]
  303. newpassword = params[:passwordsignup]
  304. newpassword_confirm = params[:passwordsignup_confirm]
  305. conn = connectToDB(ENV['DATABASE_URL'])
  306. password_indb = "SELECT password FROM users_table WHERE username = '#{username}'"
  307. results = conn.exec(password_indb)
  308. if results.getvalue(0,0) != password
  309. @message = "Incorrect old password!"
  310. erb :update
  311. elsif newpassword != newpassword_confirm
  312. @message = "New passwords are not the same!"
  313. erb :update
  314. else
  315. pass = "UPDATE users_table SET password = '#{newpassword}' WHERE username = '#{username}'"
  316. result = conn.exec(pass)
  317. time = Time.now.hour
  318. if time >=12 && time < 18
  319. @greeting="Good afternoon,"
  320. elsif time >=6 && time <12
  321. @greeting="Good morning,"
  322. else
  323. @greeting="It's sleep time,"
  324. end
  325. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  326. gender_result = conn.exec(gender)
  327. if gender_result.getvalue(0,0).eql? "male"
  328. @call = "Mr.&nbsp;"
  329. else
  330. @call = "Mrs.&nbsp;"
  331. end
  332. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  333. lname_result = conn.exec(lname)
  334. if lname_result.getvalue(0,0).eql? ""
  335. @name = "Foo"
  336. else
  337. @name = lname_result.getvalue(0,0)
  338. end
  339. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  340. usg_result = conn.exec(usg)
  341. usg_value = usg_result.getvalue(0,0)
  342. if usg_value.eql? "1" or usg_value.eql? "0"
  343. @usageMsg = usg_value + " contact"
  344. else
  345. @usageMsg = usg_value + " contacts"
  346. end
  347. if !usg_value.eql? "0"
  348. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  349. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  350. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  351. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  352. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  353. name_array_result= conn.exec(name_array)
  354. phone_array_result= conn.exec(phone_array)
  355. email_array_result= conn.exec(email_array)
  356. msn_array_result= conn.exec(msn_array)
  357. gender_array_result= conn.exec(gender_array)
  358. $i = 0;
  359. @contactCode=""
  360. while $i < usg_value.to_i do
  361. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  362. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  363. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  364. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  365. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  366. $i += 1
  367. end
  368. end
  369. erb :home
  370. end
  371. end
  372. post '/addcontact' do
  373. username = session["cookie"]
  374. name = params[:name]
  375. phonenum = params[:phonenum]
  376. email = params[:email]
  377. msn = params[:msn]
  378. gender = params[:Gender]
  379. conn = connectToDB(ENV['DATABASE_URL'])
  380. check_name ="SELECT phonenum FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  381. check_result = conn.exec(check_name)
  382. if check_result.ntuples() !=0
  383. time = Time.now.hour
  384. if time >=12 && time < 18
  385. @greeting="Good afternoon,"
  386. elsif time >=6 && time <12
  387. @greeting="Good morning,"
  388. else
  389. @greeting="It's sleep time,"
  390. end
  391. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  392. gender_result = conn.exec(gender)
  393. if gender_result.getvalue(0,0).eql? "male"
  394. @call = "Mr.&nbsp;"
  395. else
  396. @call = "Mrs.&nbsp;"
  397. end
  398. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  399. lname_result = conn.exec(lname)
  400. if lname_result.getvalue(0,0).eql? ""
  401. @name = "Foo"
  402. else
  403. @name = lname_result.getvalue(0,0)
  404. end
  405. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  406. usg_result = conn.exec(usg)
  407. usg_value = usg_result.getvalue(0,0)
  408. if usg_value.eql? "1" or usg_value.eql? "0"
  409. @usageMsg = usg_value + " contact"
  410. else
  411. @usageMsg = usg_value + " contacts"
  412. end
  413. if !usg_value.eql? "0"
  414. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  415. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  416. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  417. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  418. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  419. name_array_result= conn.exec(name_array)
  420. phone_array_result= conn.exec(phone_array)
  421. email_array_result= conn.exec(email_array)
  422. msn_array_result= conn.exec(msn_array)
  423. gender_array_result= conn.exec(gender_array)
  424. $i = 0;
  425. @contactCode=""
  426. while $i < usg_value.to_i do
  427. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  428. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  429. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  430. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  431. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  432. $i += 1
  433. end
  434. end
  435. @createResult = "Name already exists!"
  436. erb :home
  437. else
  438. usage = "SELECT usage FROM users_table WHERE username = '#{username}'"
  439. usage_result = conn.exec(usage)
  440. newusg = usage_result.getvalue(0,0).to_i + 1
  441. updateusg = "UPDATE users_table SET usage = '#{newusg}' WHERE username = '#{username}'"
  442. result = conn.exec(updateusg)
  443. create = "INSERT INTO contacts_table VALUES('#{username}','#{name}','#{phonenum}','#{email}','#{msn}','#{gender}')"
  444. result = conn.exec(create)
  445. time = Time.now.hour
  446. if time >=12 && time < 18
  447. @greeting="Good afternoon,"
  448. elsif time >=6 && time <12
  449. @greeting="Good morning,"
  450. else
  451. @greeting="It's sleep time,"
  452. end
  453. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  454. gender_result = conn.exec(gender)
  455. if gender_result.getvalue(0,0).eql? "male"
  456. @call = "Mr.&nbsp;"
  457. else
  458. @call = "Mrs.&nbsp;"
  459. end
  460. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  461. lname_result = conn.exec(lname)
  462. if lname_result.getvalue(0,0).eql? ""
  463. @name = "Foo"
  464. else
  465. @name = lname_result.getvalue(0,0)
  466. end
  467. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  468. usg_result = conn.exec(usg)
  469. usg_value = usg_result.getvalue(0,0)
  470. if usg_value.eql? "1" or usg_value.eql? "0"
  471. @usageMsg = usg_value + " contact"
  472. else
  473. @usageMsg = usg_value + " contacts"
  474. end
  475. if !usg_value.eql? "0"
  476. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  477. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  478. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  479. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  480. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  481. name_array_result= conn.exec(name_array)
  482. phone_array_result= conn.exec(phone_array)
  483. email_array_result= conn.exec(email_array)
  484. msn_array_result= conn.exec(msn_array)
  485. gender_array_result= conn.exec(gender_array)
  486. $i = 0;
  487. @contactCode=""
  488. while $i < usg_value.to_i do
  489. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  490. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  491. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  492. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  493. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  494. $i += 1
  495. end
  496. end
  497. erb :home
  498. end
  499. end
  500. post '/searchcontact' do
  501. username = session["cookie"]
  502. name = params[:contactname]
  503. conn = connectToDB(ENV['DATABASE_URL'])
  504. check_name ="SELECT phonenum FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  505. check_result = conn.exec(check_name)
  506. if check_result.ntuples() == 0
  507. time = Time.now.hour
  508. if time >=12 && time < 18
  509. @greeting="Good afternoon,"
  510. elsif time >=6 && time <12
  511. @greeting="Good morning,"
  512. else
  513. @greeting="It's sleep time,"
  514. end
  515. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  516. gender_result = conn.exec(gender)
  517. if gender_result.getvalue(0,0).eql? "male"
  518. @call = "Mr.&nbsp;"
  519. else
  520. @call = "Mrs.&nbsp;"
  521. end
  522. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  523. lname_result = conn.exec(lname)
  524. if lname_result.getvalue(0,0).eql? ""
  525. @name = "Foo"
  526. else
  527. @name = lname_result.getvalue(0,0)
  528. end
  529. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  530. usg_result = conn.exec(usg)
  531. usg_value = usg_result.getvalue(0,0)
  532. if usg_value.eql? "1" or usg_value.eql? "0"
  533. @usageMsg = usg_value + " contact"
  534. else
  535. @usageMsg = usg_value + " contacts"
  536. end
  537. if !usg_value.eql? "0"
  538. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  539. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  540. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  541. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  542. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  543. name_array_result= conn.exec(name_array)
  544. phone_array_result= conn.exec(phone_array)
  545. email_array_result= conn.exec(email_array)
  546. msn_array_result= conn.exec(msn_array)
  547. gender_array_result= conn.exec(gender_array)
  548. $i = 0;
  549. @contactCode=""
  550. while $i < usg_value.to_i do
  551. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  552. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  553. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  554. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  555. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  556. $i += 1
  557. end
  558. end
  559. @searchResult = "Name does not exist!"
  560. erb :home
  561. else
  562. time = Time.now.hour
  563. if time >=12 && time < 18
  564. @greeting="Good afternoon,"
  565. elsif time >=6 && time <12
  566. @greeting="Good morning,"
  567. else
  568. @greeting="It's sleep time,"
  569. end
  570. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  571. gender_result = conn.exec(gender)
  572. if gender_result.getvalue(0,0).eql? "male"
  573. @call = "Mr.&nbsp;"
  574. else
  575. @call = "Mrs.&nbsp;"
  576. end
  577. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  578. lname_result = conn.exec(lname)
  579. if lname_result.getvalue(0,0).eql? ""
  580. @name = "Foo"
  581. else
  582. @name = lname_result.getvalue(0,0)
  583. end
  584. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  585. usg_result = conn.exec(usg)
  586. usg_value = usg_result.getvalue(0,0)
  587. if usg_value.eql? "1" or usg_value.eql? "0"
  588. @usageMsg = usg_value + " contact"
  589. else
  590. @usageMsg = usg_value + " contacts"
  591. end
  592. if !usg_value.eql? "0"
  593. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  594. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  595. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  596. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  597. phone_array_result= conn.exec(phone_array)
  598. email_array_result= conn.exec(email_array)
  599. msn_array_result= conn.exec(msn_array)
  600. gender_array_result= conn.exec(gender_array)
  601. @contactCode=""
  602. @contactCode += "<tr class='solid'><td class='solid'>" + name + "</td>"
  603. @contactCode += "<td class='solid'>" + gender_array_result.getvalue(0,0) + "</td>"
  604. @contactCode += "<td class='solid'>" + phone_array_result.getvalue(0,0) + "</td>"
  605. @contactCode += "<td class='solid'>" + email_array_result.getvalue(0,0) + "</td>"
  606. @contactCode += "<td class='solid'>" + msn_array_result.getvalue(0,0) + "</td></tr>"
  607. end
  608. @buttonCode = "
  609. <form action='return' method='get'>
  610. <span style='float: right;'><button type='submit'>Return to all contacts</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  611. </span>
  612. </form>"
  613. erb :home
  614. end
  615. end
  616. get '/return' do
  617. username = session["cookie"]
  618. conn = connectToDB(ENV['DATABASE_URL'])
  619. time = Time.now.hour
  620. if time >=12 && time < 18
  621. @greeting="Good afternoon,"
  622. elsif time >=6 && time <12
  623. @greeting="Good morning,"
  624. else
  625. @greeting="It's sleep time,"
  626. end
  627. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  628. gender_result = conn.exec(gender)
  629. if gender_result.getvalue(0,0).eql? "male"
  630. @call = "Mr.&nbsp;"
  631. else
  632. @call = "Mrs.&nbsp;"
  633. end
  634. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  635. lname_result = conn.exec(lname)
  636. if lname_result.getvalue(0,0).eql? ""
  637. @name = "Foo"
  638. else
  639. @name = lname_result.getvalue(0,0)
  640. end
  641. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  642. usg_result = conn.exec(usg)
  643. usg_value = usg_result.getvalue(0,0)
  644. if usg_value.eql? "1" or usg_value.eql? "0"
  645. @usageMsg = usg_value + " contact"
  646. else
  647. @usageMsg = usg_value + " contacts"
  648. end
  649. if !usg_value.eql? "0"
  650. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  651. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  652. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  653. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  654. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  655. name_array_result= conn.exec(name_array)
  656. phone_array_result= conn.exec(phone_array)
  657. email_array_result= conn.exec(email_array)
  658. msn_array_result= conn.exec(msn_array)
  659. gender_array_result= conn.exec(gender_array)
  660. $i = 0;
  661. @contactCode=""
  662. while $i < usg_value.to_i do
  663. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  664. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  665. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  666. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  667. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  668. $i += 1
  669. end
  670. end
  671. erb :home
  672. end
  673. post '/editcontact' do
  674. username = session["cookie"]
  675. name = params[:contactname]
  676. conn = connectToDB(ENV['DATABASE_URL'])
  677. check_name ="SELECT phonenum FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  678. check_result = conn.exec(check_name)
  679. if check_result.ntuples() == 0
  680. time = Time.now.hour
  681. if time >=12 && time < 18
  682. @greeting="Good afternoon,"
  683. elsif time >=6 && time <12
  684. @greeting="Good morning,"
  685. else
  686. @greeting="It's sleep time,"
  687. end
  688. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  689. gender_result = conn.exec(gender)
  690. if gender_result.getvalue(0,0).eql? "male"
  691. @call = "Mr.&nbsp;"
  692. else
  693. @call = "Mrs.&nbsp;"
  694. end
  695. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  696. lname_result = conn.exec(lname)
  697. if lname_result.getvalue(0,0).eql? ""
  698. @name = "Foo"
  699. else
  700. @name = lname_result.getvalue(0,0)
  701. end
  702. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  703. usg_result = conn.exec(usg)
  704. usg_value = usg_result.getvalue(0,0)
  705. if usg_value.eql? "1" or usg_value.eql? "0"
  706. @usageMsg = usg_value + " contact"
  707. else
  708. @usageMsg = usg_value + " contacts"
  709. end
  710. if !usg_value.eql? "0"
  711. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  712. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  713. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  714. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  715. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  716. name_array_result= conn.exec(name_array)
  717. phone_array_result= conn.exec(phone_array)
  718. email_array_result= conn.exec(email_array)
  719. msn_array_result= conn.exec(msn_array)
  720. gender_array_result= conn.exec(gender_array)
  721. $i = 0;
  722. @contactCode=""
  723. while $i < usg_value.to_i do
  724. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  725. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  726. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  727. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  728. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  729. $i += 1
  730. end
  731. end
  732. @editResult = "Name does not exist!"
  733. erb :home
  734. else
  735. time = Time.now.hour
  736. if time >=12 && time < 18
  737. @greeting="Good afternoon,"
  738. elsif time >=6 && time <12
  739. @greeting="Good morning,"
  740. else
  741. @greeting="It's sleep time,"
  742. end
  743. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  744. gender_result = conn.exec(gender)
  745. if gender_result.getvalue(0,0).eql? "male"
  746. @call = "Mr.&nbsp;"
  747. else
  748. @call = "Mrs.&nbsp;"
  749. end
  750. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  751. lname_result = conn.exec(lname)
  752. if lname_result.getvalue(0,0).eql? ""
  753. @name = "Foo"
  754. else
  755. @name = lname_result.getvalue(0,0)
  756. end
  757. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  758. usg_result = conn.exec(usg)
  759. usg_value = usg_result.getvalue(0,0)
  760. if usg_value.eql? "1" or usg_value.eql? "0"
  761. @usageMsg = usg_value + " contact"
  762. else
  763. @usageMsg = usg_value + " contacts"
  764. end
  765. if !usg_value.eql? "0"
  766. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  767. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  768. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  769. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  770. phone_array_result= conn.exec(phone_array)
  771. email_array_result= conn.exec(email_array)
  772. msn_array_result= conn.exec(msn_array)
  773. gender_array_result= conn.exec(gender_array)
  774. @contactCode=""
  775. @contactCode += "<tr class='solid'><td class='solid'>" + name + "</td>"
  776. @contactCode += "<td class='solid'>" + gender_array_result.getvalue(0,0) + "</td>"
  777. @contactCode += "<td class='solid'>" + phone_array_result.getvalue(0,0) + "</td>"
  778. @contactCode += "<td class='solid'>" + email_array_result.getvalue(0,0) + "</td>"
  779. @contactCode += "<td class='solid'>" + msn_array_result.getvalue(0,0) + "</td></tr>"
  780. end
  781. phone = phone_array_result.getvalue(0,0)
  782. email = email_array_result.getvalue(0,0)
  783. msn = msn_array_result.getvalue(0,0)
  784. if gender_array_result.getvalue(0,0).eql? "male"
  785. maleselected = "selected"
  786. femaleselected = ""
  787. else
  788. femaleselected = "selected"
  789. maleselected = ""
  790. end
  791. @buttonCode = "
  792. <form action='saveeditchange' method='post'>
  793. <center><p>
  794. <label for='lname' data-icon='u'><span class='red'>*</span>Name:&nbsp;&nbsp;&nbsp;</label>
  795. <input size='20' maxlength='10' id='lname' name='lname'type='text' required='required' placeholder='Name' readonly value ='"+name+"' />
  796. </p>
  797. <p>
  798. <label for='phonenum' data-icon='u'><span class='red'>*</span>Cal:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  799. &nbsp;&nbsp;</label>
  800. <input size='20' maxlength='10' id='phonenum' name='phonenum'type='text' required='required' placeholder='Phone number' value ='" + phone +"'/>
  801. </p>
  802. <p>
  803. <label for='email' data-icon='u'>&nbsp;&nbsp;Email:&nbsp;&nbsp;&nbsp;</label>
  804. <input size='20' maxlength='20'id='email' name='email'type='email' placeholder='sample@domin.com' value ='"+email+"'/>
  805. </p>
  806. <p>
  807. <label for='msn' data-icon='u'>&nbsp;&nbsp;MSN:&nbsp;&nbsp;&nbsp;&nbsp;</label>
  808. <input size='20' maxlength='10' id='msn' name='msn' placeholder='MSN' value ='"+msn+"'/>
  809. </p>
  810. <p>
  811. <label for='gender'>&nbsp;&nbsp;Gender:</label>
  812. <select name='Gender'>
  813. <option value='male' "+maleselected+">Male</option>
  814. <option value='female' "+femaleselected+">Female</option>
  815. </select>
  816. </p></center>
  817. <span style='float: right;'><button type='submit'>Save change</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  818. &nbsp;&nbsp;&nbsp;</span>
  819. </form>
  820. <br /><br />
  821. <form action='deletecontact' method='get'>
  822. <span style='float: right;'><button type='submit' style='color: #FF1919;'>Delete this contact</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  823. &nbsp;&nbsp;&nbsp;</span>
  824. </form>
  825. <br /><br />
  826. <form action='return' method='get'>
  827. <span style='float: right;'><button type='submit'>Return to all contacts</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  828. &nbsp;&nbsp;&nbsp;</span>
  829. </form>
  830. "
  831. session["name"] = params[:contactname]
  832. erb :home
  833. end
  834. end
  835. post '/saveeditchange' do
  836. username = session["cookie"]
  837. name = params[:lname]
  838. phonenum = params[:phonenum]
  839. email = params[:email]
  840. msn = params[:msn]
  841. gender = params[:Gender]
  842. conn = connectToDB(ENV['DATABASE_URL'])
  843. update = "UPDATE contacts_table SET phonenum = '#{phonenum}', email = '#{email}', msn = '#{msn}', gender = '#{gender}' WHERE username = '#{username}' AND name = '#{name}'"
  844. update_result = conn.exec(update)
  845. time = Time.now.hour
  846. if time >=12 && time < 18
  847. @greeting="Good afternoon,"
  848. elsif time >=6 && time <12
  849. @greeting="Good morning,"
  850. else
  851. @greeting="It's sleep time,"
  852. end
  853. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  854. gender_result = conn.exec(gender)
  855. if gender_result.getvalue(0,0).eql? "male"
  856. @call = "Mr.&nbsp;"
  857. else
  858. @call = "Mrs.&nbsp;"
  859. end
  860. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  861. lname_result = conn.exec(lname)
  862. if lname_result.getvalue(0,0).eql? ""
  863. @name = "Foo"
  864. else
  865. @name = lname_result.getvalue(0,0)
  866. end
  867. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  868. usg_result = conn.exec(usg)
  869. usg_value = usg_result.getvalue(0,0)
  870. if usg_value.eql? "1" or usg_value.eql? "0"
  871. @usageMsg = usg_value + " contact"
  872. else
  873. @usageMsg = usg_value + " contacts"
  874. end
  875. if !usg_value.eql? "0"
  876. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  877. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  878. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  879. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  880. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  881. name_array_result= conn.exec(name_array)
  882. phone_array_result= conn.exec(phone_array)
  883. email_array_result= conn.exec(email_array)
  884. msn_array_result= conn.exec(msn_array)
  885. gender_array_result= conn.exec(gender_array)
  886. $i = 0;
  887. @contactCode=""
  888. while $i < usg_value.to_i do
  889. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  890. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  891. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  892. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  893. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  894. $i += 1
  895. end
  896. end
  897. erb :home
  898. end
  899. get '/deletecontact' do
  900. name = session["name"]
  901. username = session["cookie"]
  902. conn = connectToDB(ENV['DATABASE_URL'])
  903. update = "DELETE FROM contacts_table WHERE username = '#{username}' AND name = '#{name}'"
  904. update_result = conn.exec(update)
  905. usage = "SELECT usage FROM users_table WHERE username = '#{username}'"
  906. usage_result = conn.exec(usage)
  907. newusg = usage_result.getvalue(0,0).to_i - 1
  908. updateusg = "UPDATE users_table SET usage = '#{newusg}' WHERE username = '#{username}'"
  909. result = conn.exec(updateusg)
  910. time = Time.now.hour
  911. if time >=12 && time < 18
  912. @greeting="Good afternoon,"
  913. elsif time >=6 && time <12
  914. @greeting="Good morning,"
  915. else
  916. @greeting="It's sleep time,"
  917. end
  918. gender = "SELECT gender FROM users_table WHERE username = '#{username}'"
  919. gender_result = conn.exec(gender)
  920. if gender_result.getvalue(0,0).eql? "male"
  921. @call = "Mr.&nbsp;"
  922. else
  923. @call = "Mrs.&nbsp;"
  924. end
  925. lname = "SELECT lastname FROM users_table WHERE username = '#{username}'"
  926. lname_result = conn.exec(lname)
  927. if lname_result.getvalue(0,0).eql? ""
  928. @name = "Foo"
  929. else
  930. @name = lname_result.getvalue(0,0)
  931. end
  932. usg = "SELECT usage FROM users_table WHERE username = '#{username}'"
  933. usg_result = conn.exec(usg)
  934. usg_value = usg_result.getvalue(0,0)
  935. if usg_value.eql? "1" or usg_value.eql? "0"
  936. @usageMsg = usg_value + " contact"
  937. else
  938. @usageMsg = usg_value + " contacts"
  939. end
  940. if !usg_value.eql? "0"
  941. name_array = "SELECT name FROM contacts_table WHERE username = '#{username}'"
  942. phone_array = "SELECT phonenum FROM contacts_table WHERE username = '#{username}'"
  943. email_array = "SELECT email FROM contacts_table WHERE username = '#{username}'"
  944. msn_array = "SELECT msn FROM contacts_table WHERE username = '#{username}'"
  945. gender_array = "SELECT gender FROM contacts_table WHERE username = '#{username}'"
  946. name_array_result= conn.exec(name_array)
  947. phone_array_result= conn.exec(phone_array)
  948. email_array_result= conn.exec(email_array)
  949. msn_array_result= conn.exec(msn_array)
  950. gender_array_result= conn.exec(gender_array)
  951. $i = 0;
  952. @contactCode=""
  953. while $i < usg_value.to_i do
  954. @contactCode += "<tr class='solid'><td class='solid'>" + name_array_result.getvalue($i,0) + "</td>"
  955. @contactCode += "<td class='solid'>" + gender_array_result.getvalue($i,0) + "</td>"
  956. @contactCode += "<td class='solid'>" + phone_array_result.getvalue($i,0) + "</td>"
  957. @contactCode += "<td class='solid'>" + email_array_result.getvalue($i,0) + "</td>"
  958. @contactCode += "<td class='solid'>" + msn_array_result.getvalue($i,0) + "</td></tr>"
  959. $i += 1
  960. end
  961. end
  962. erb :home
  963. end
  964. get '/exit' do
  965. session["cookie"] = nil
  966. erb :index
  967. end
  968. # this route tests the database connection
  969. get '/test_db' do
  970. testDBConnection(ENV['DATABASE_URL'])
  971. end
  972. # this route displays the SQL input form
  973. get '/db_manager' do
  974. runDBShell(ENV['DATABASE_URL'])
  975. end
  976. # this route receives input from the SQL input form
  977. post '/db_manager' do
  978. runDBShell(ENV['DATABASE_URL'], params)
  979. end
  980. get '/env' do
  981. ENV
  982. end
  983. get '*' do
  984. "Path: " + request.fullpath()
  985. end