Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.40 KB | None | 0 0
  1. // — — — — — — — — HOUSE KEEPING — — — — — — — —
  2. const express = require("express");
  3. const app = express();
  4. const PORT = process.env.PORT || 8080;
  5. // *** database connection ***
  6.  
  7. const methodOverride = require("method-override");
  8. app.use(methodOverride('_method'));
  9. app.set('views', 'views');
  10. app.set("view engine", "ejs");
  11. const bodyParser = require("body-parser");
  12. app.use(bodyParser.urlencoded({extended: true}));
  13.  
  14. app.use(express.static("public"));
  15. // const settings = require("./settings");
  16. // var pg = require('pg');
  17.  
  18. const knex = require('knex')({
  19. client: 'pg',
  20. connection: {
  21. host : '127.0.0.1',
  22. port : 5432,
  23. database : 'midterm',
  24. user : 'labber',
  25. password : 'labber'
  26. }
  27. });
  28.  
  29.  
  30.  
  31.  
  32.  
  33. // — — — — — — — — FUNCTIONS (TO MODULE) — — — — — — — —
  34.  
  35.  
  36.  
  37. // ———————— GENERATE RANDOM STRING ————————
  38.  
  39. function generateRandomString() {
  40. var text = "";
  41. var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  42. for( let i = 0; i < 6; i++ ) {
  43. text += possible.charAt(Math.floor(Math.random() * possible.length));
  44. }
  45. // need to insert if/else for if text matches any existing uniqueShortURL
  46. return text;
  47. }
  48.  
  49.  
  50. // ———————— LOAD EVENT-TIME-VOTES ————————
  51.  
  52. // function loadVotes() {
  53. // $.ajax({
  54. // url: "/event/:id",
  55. // method: 'GET',
  56. // datatype: 'json',
  57. // success: function (result) {
  58. // renderVotes(result);
  59. // }
  60. // });
  61. // }
  62.  
  63.  
  64. // ———————— RENDER EVENT-TIME-VOTES ————————
  65.  
  66. // function renderVotes(votes) {
  67. // votes.forEach(function(vote) {
  68. // $('#___').append(createEventTimesElement(vote));
  69. // });
  70. // }
  71.  
  72.  
  73. // ———————— CREATE EVENT-TIME-VOTES ELEMENT ————————
  74.  
  75. // function createEventTimesElement(thisEvent) {
  76. // var articleEventVote = $()
  77. // return articleEventVote;
  78. // }
  79.  
  80.  
  81. // ———————— CREATE EVENT ELEMENT ————————
  82.  
  83. // function createEventElement(thisEvent) {
  84. // var articleEvent = $()
  85. // return articleEvent;
  86. // }
  87.  
  88.  
  89. // ———————— INSERT ELEMENT INTO CREATORS ————————
  90.  
  91. function eventFormToDatabase(creator_name, creator_email, event_name, event_location, event_desc, date, time1, time2, time3, time4, url) {
  92. console.log("in creators");
  93. knex('public.creators')
  94. .insert({name: creator_name, email: creator_email})
  95. .returning("id")
  96. .asCallback((err, rows) => {
  97. if (err) {
  98. console.log("DB error while creating creator: ", err);
  99. } else {
  100. var cid = Number(rows[0]); // a good dev, unlike JJWH, would have error-checked this
  101. knex('public.events')
  102. .insert({
  103. name: event_name,
  104. creatorid: cid,
  105. uniqueurl: url,
  106. description: event_desc,
  107. location: event_location,
  108. event_date: date,
  109. event_time1: time1,
  110. event_time2: time2,
  111. event_time3: time3,
  112. event_time4: time4
  113. })
  114. .asCallback(function(err, res){
  115. if (err){
  116. console.log("DB error while inserting event: ", err);
  117. } else {
  118. console.log("event-insert seems okay: ", rows);
  119. }
  120. });
  121. }
  122. })
  123. };
  124.  
  125.  
  126. // // ———————— INSERT ELEMENT INTO EVENTS ————————
  127.  
  128. // function events(event_name, location, desc, date, time) {
  129. // knex.insert([{name: name,
  130. // creatorID: creator_id,
  131. // description: desc,
  132. // location: location,
  133. // event_date: date,
  134. // event_time: time}])
  135. // .into('public.events')
  136. // };
  137.  
  138.  
  139. // ———————— INSERT ELEMENT INTO ATTENDEES ————————
  140.  
  141. function attendees(name, vote1, vote2, vote3) {
  142. knex.insert([{name: name,
  143. time1Vote: vote1,
  144. time2Vote: vote2,
  145. time3Vote: vote3}])
  146. .into('attendees')
  147. .then(function(result) {
  148. console.log(result);
  149. });
  150. };
  151.  
  152.  
  153. // ———————— FIND EVENT FROM DATABASE FUNCTION ————————
  154.  
  155. function findEvents(thisURL) {
  156. knex.select('*').table('events')
  157. .where('uniqueurl', '=', thisURL)
  158. .asCallback(function(err, result) {
  159. console.log(result);
  160. if (err) {
  161. return console.error("error running query", err);
  162. }
  163. return result;
  164. });
  165. };
  166.  
  167.  
  168.  
  169. // // ———————— FIND UNIQUE URL FROM DATABASE FUNCTION ————————
  170.  
  171. function findUniqueURL(thisURL) {
  172. knex.select('uniqueurl').table('events')
  173. .where('uniqueurl', '=', thisURL)
  174. .asCallback(function(err, result) {
  175. console.log(result);
  176. if (err) {
  177. return console.error("error running query", err);
  178. }
  179. return result;
  180. });
  181. };
  182.  
  183.  
  184.  
  185.  
  186.  
  187. // — — — — — — — — ROUTES — — — — — — — —
  188.  
  189.  
  190.  
  191. // ———————— HOME/INDEX PAGE ————————
  192.  
  193. app.get("/", (req, res) => {
  194. res.redirect("/index");
  195. });
  196.  
  197. app.get("/index", (req, res) => {
  198. res.render("index");
  199. });
  200.  
  201.  
  202. // ———————— CREATE EVENT PAGE ————————
  203.  
  204. app.get("/event/create", (req, res) => {
  205. res.render("create");
  206. });
  207.  
  208.  
  209. // ———————— CREATE EVENT SUBMISSION REQUEST ————————
  210.  
  211. app.post("/event/create/submit", (req, res) => {
  212. var url = generateRandomString();
  213. eventFormToDatabase(
  214. req.body.event_creator_name,
  215. req.body.event_creator_email,
  216. req.body.event_title,
  217. req.body.event_location,
  218. req.body.event_description,
  219. req.body.event_date,
  220. req.body.event_time1,
  221. req.body.event_time2,
  222. req.body.event_time3,
  223. req.body.event_time4,
  224. url);
  225. res.redirect("u_share");
  226. });
  227.  
  228.  
  229. // ———————— NEW UNIQUE URL PAGE ————————
  230. app.get("/create/:id", (req, res) => {
  231. res.render("u_share");
  232. });
  233.  
  234.  
  235. // ———————— EVENT PAGE ————————
  236.  
  237. app.get("/event/:id", (req, res) => {
  238. var eventIDKey = req.params.id;
  239. res.render("u_url");
  240. });
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248. // — — — — — — — — LISTENER — — — — — — — —
  249. app.listen(PORT, () => {
  250. console.log(`Example app listening on port ${PORT}!`);
  251. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement