Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // — — — — — — — — HOUSE KEEPING — — — — — — — —
- const express = require("express");
- const app = express();
- const PORT = process.env.PORT || 8080;
- // *** database connection ***
- const methodOverride = require("method-override");
- app.use(methodOverride('_method'));
- app.set('views', 'views');
- app.set("view engine", "ejs");
- const bodyParser = require("body-parser");
- app.use(bodyParser.urlencoded({extended: true}));
- app.use(express.static("public"));
- const database_relations = require('./scripts/database_relations.js');
- // const appJS = require('./scripts/app.js');
- const knex = require('knex')({
- client: 'pg',
- connection: {
- host : 'ec2-54-163-249-150.compute-1.amazonaws.com',
- port : 5432,
- database : 'd23iqrm4nh57jc',
- user : 'xloftavhtijgjd',
- password : 'whhsEn9c7zp3fM5wN_epxexToa',
- ssl : true
- }
- });
- app.use('/db_curtain', database_relations(knex));
- // ———————— INSERT EVENT INTO DATABASE ————————
- function eventFormToDatabase(creator_name,
- creator_email,
- event_name,
- event_location,
- event_desc,
- date, time1,
- time2, time3,
- time4, url) {
- console.log("in creators");
- knex("public.creators")
- .insert({name: creator_name, email: creator_email})
- .returning("id")
- .asCallback((err, rows) => {
- if (err) {
- console.log("DB error while creating creator: ", err);
- } else {
- var theCreatorId = Number(rows[0]); // a good dev, unlike JJWH, would have
- knex('public.events')
- .insert({
- name: event_name,
- event_creator_id: theCreatorId,
- unique_key: url,
- description: event_desc,
- location: event_location,
- event_date: date,
- event_time1: time1,
- event_time2: time2,
- event_time3: time3,
- event_time4: time4
- })
- .asCallback(function(err, res){
- if (err){
- console.log("DB error while inserting event: ", err);
- } else {
- console.log("event-insert seems okay: ", rows);
- }
- });
- }
- })
- };
- // ———————— INSERT VOTE INTO DATABASE ————————
- function eventVoteToDatabase(name,
- time1,
- time2, time3,
- time4, thisEvent) {
- console.log("in attendees");
- knex("public.attendees")
- .insert({attendee_name: name, time1_vote: time1, time2_vote: time2, time3_vote: time3, time4_vote: time4})
- .where('unique_key', thisEvent)
- .asCallback((err, rows) => {
- if (err) {
- console.log("DB error while creating creator: ", err);
- } else {
- console.log("event-insert seems okay: ", rows);
- res.json('OK');
- }
- })
- };
- db_api.post("/events/:event_id/votes", (req, res) => {
- let thisEvent = req.params.event_id;
- eventVoteToDatabase(req.body.attendee_name, req.body.time1_vote, req.body.time2_vote, req.body.time3_vote, req.body.time4_vote, thisEvent)
- console.log('Create vote');
- res.json('OK');
- return db_api;
- });
- // — — — — — — — — FUNCTIONS (TO MODULE) — — — — — — — —
- // ———————— GENERATE RANDOM STRING ————————
- function generateRandomString() {
- var text = "";
- var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- for( let i = 0; i < 6; i++ ) {
- text += possible.charAt(Math.floor(Math.random() * possible.length));
- }
- // need to insert if/else for if text matches any existing uniqueShortURL
- return text;
- }
- // — — — — — — — — ROUTES — — — — — — — —
- // ———————— HOME/INDEX PAGE ————————
- app.get("/", (req, res) => {
- res.redirect("/index");
- });
- app.get("/index", (req, res) => {
- res.render("index");
- });
- // ———————— CREATE EVENT PAGE ————————
- app.get("/event/create", (req, res) => {
- res.render("create");
- });
- // ———————— CREATE EVENT SUBMISSION REQUEST ————————
- app.post("/event/create/submit", (req, res) => {
- var url = generateRandomString();
- eventFormToDatabase(
- req.body.event_creator_name,
- req.body.event_creator_email,
- req.body.event_title,
- req.body.event_location,
- req.body.event_description,
- req.body.event_date,
- req.body.event_time1,
- req.body.event_time2,
- req.body.event_time3,
- req.body.event_time4,
- url);
- res.redirect("/event/create/" + url);
- });
- // ———————— NEW UNIQUE URL PAGE ————————
- app.get("/event/create/:event_id", (req, res) => {
- // console.log("J Wuz Heer", req);
- res.render("u_share", {host: req.headers.host, event_id: req.params.event_id});
- });
- // ———————— EVENT PAGE ————————
- app.get("/event/:event_id", (req, res) => {
- var template_params = {
- event_id: req.params.event_id,
- // event_name: req.params.event_id,
- // event_description: req.params.event_id,
- // event_location: req.params.event_id,
- // event_date: req.params.event_id,
- // event_creator_name: req.params.event_id,
- // event_creator_email: req.params.event_id,
- // event_time1: req.params.event_id,
- // event_time2: req.params.event_id,
- // event_time3: req.params.event_id,
- // event_time4: req.params.event_id,
- // attendees_id: req.params.event_id
- /* we sure would like some information from the DB about this event */
- }
- res.render("u_url", template_params);
- });
- // app.post("/event/:event_id/vote_submit", (req, res) => {
- // eventVoteToDatabase(
- // req.body.attendee_name,
- // req.body.event_time1,
- // req.body.event_time2,
- // req.body.event_time3,
- // req.body.event_time4,
- // );
- // res.redirect("/event/create/" + url);
- // });
- // — — — — — — — — LISTENER — — — — — — — —
- app.listen(PORT, () => {
- console.log(`Example app listening on port ${PORT}!`);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement