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 settings = require("./settings");
- // var pg = require('pg');
- const knex = require('knex')({
- client: 'pg',
- connection: {
- host : '127.0.0.1',
- port : 5432,
- database : 'midterm',
- user : 'labber',
- password : 'labber'
- }
- });
- // — — — — — — — — 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;
- }
- // ———————— LOAD EVENT-TIME-VOTES ————————
- // function loadVotes() {
- // $.ajax({
- // url: "/event/:id",
- // method: 'GET',
- // datatype: 'json',
- // success: function (result) {
- // renderVotes(result);
- // }
- // });
- // }
- // ———————— RENDER EVENT-TIME-VOTES ————————
- // function renderVotes(votes) {
- // votes.forEach(function(vote) {
- // $('#___').append(createEventTimesElement(vote));
- // });
- // }
- // ———————— CREATE EVENT-TIME-VOTES ELEMENT ————————
- // function createEventTimesElement(thisEvent) {
- // var articleEventVote = $()
- // return articleEventVote;
- // }
- // ———————— CREATE EVENT ELEMENT ————————
- // function createEventElement(thisEvent) {
- // var articleEvent = $()
- // return articleEvent;
- // }
- // ———————— INSERT ELEMENT INTO CREATORS ————————
- 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 cid = Number(rows[0]); // a good dev, unlike JJWH, would have error-checked this
- knex('public.events')
- .insert({
- name: event_name,
- creatorid: cid,
- uniqueurl: 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 ELEMENT INTO EVENTS ————————
- // function events(event_name, location, desc, date, time) {
- // knex.insert([{name: name,
- // creatorID: creator_id,
- // description: desc,
- // location: location,
- // event_date: date,
- // event_time: time}])
- // .into('public.events')
- // };
- // ———————— INSERT ELEMENT INTO ATTENDEES ————————
- function attendees(name, vote1, vote2, vote3) {
- knex.insert([{name: name,
- time1Vote: vote1,
- time2Vote: vote2,
- time3Vote: vote3}])
- .into('attendees')
- .then(function(result) {
- console.log(result);
- });
- };
- // ———————— FIND EVENT FROM DATABASE FUNCTION ————————
- function findEvents(thisURL) {
- knex.select('*').table('events')
- .where('uniqueurl', '=', thisURL)
- .asCallback(function(err, result) {
- console.log(result);
- if (err) {
- return console.error("error running query", err);
- }
- return result;
- });
- };
- // // ———————— FIND UNIQUE URL FROM DATABASE FUNCTION ————————
- function findUniqueURL(thisURL) {
- knex.select('uniqueurl').table('events')
- .where('uniqueurl', '=', thisURL)
- .asCallback(function(err, result) {
- console.log(result);
- if (err) {
- return console.error("error running query", err);
- }
- return result;
- });
- };
- // — — — — — — — — 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("u_share");
- });
- // ———————— NEW UNIQUE URL PAGE ————————
- app.get("/create/:id", (req, res) => {
- res.render("u_share");
- });
- // ———————— EVENT PAGE ————————
- app.get("/event/:id", (req, res) => {
- var eventIDKey = req.params.id;
- res.render("u_url");
- });
- // — — — — — — — — LISTENER — — — — — — — —
- app.listen(PORT, () => {
- console.log(`Example app listening on port ${PORT}!`);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement