-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
105 lines (93 loc) · 3.11 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
var express = require('express');
var app = express();
var firebase = require('firebase');
var path = require("path");
var fs = require('fs');
var bodyParser = require('body-parser');
// Initialize Firebase
var config = {
apiKey: "AIzaSyCviTqs4VeR-SMrPTYX6G5yEYLnT67hyVc",
authDomain: "timesheetentr.firebaseapp.com",
databaseURL: "https://timesheetentr.firebaseio.com",
projectId: "timesheetentr",
storageBucket: "timesheetentr.appspot.com",
messagingSenderId: "524915819635"
};
firebase.initializeApp(config);
//Get weekStart
function getWeekStart(logicDate) {
var date = new Date(logicDate);
var day = date.getDay();
if (day !== 0)
date.setHours(-24 * (day));
return date;
}
//Get weekEnd
function getWeekEnd(logicDate) {
var date = new Date(logicDate);
var day = date.getDay();
if (day !== 6)
date.setHours(24 * (6 - day));
return date;
}
//Get Week
Date.prototype.getWeek = function () {
var d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
var dayNum = d.getUTCDay() || 7;
d.setUTCDate(d.getUTCDate() + 4 - dayNum);
var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
return Math.ceil((((d - yearStart) / 86400000) + 1) / 7)
};
//Insert hours to DB
function insertHours(uid, date, leave, hours) {
// An hour entry.
var weekStart = getWeekStart(date).toLocaleDateString("en-US");
var weekEnd = getWeekEnd(date).toLocaleDateString("en-US");
var week = date.getWeek() - 1;
var postData = {
author: uid,
hours: hours,
weekStart: weekStart,
weekEnd: weekEnd,
week: week,
leave: leave,
};
// Get a key for a new entry.
var hoursKey = firebase.database().ref().child('entries').push().key;
// Write the new entry's data simultaneously in the entries list and the user's entry list.
var updates = {};
updates['/entries/' + hoursKey] = postData;
updates['/user-entries/' + uid + '/' + hoursKey] = postData;
return firebase.database().ref().update(updates);
}
app.use('/js', express.static('js'));
app.use('/img', express.static('img'));
app.use('/css', express.static('css'));
app.use('/time_web_app', express.static('time_web_app'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.get('/', (req, res) => {
res.sendFile(`${__dirname}/index.html`);
var uid = "1529604"; //TODO waiting for login method
var query = firebase.database().ref(`user-entries/${uid}`).orderByKey();
query.once("value")
.then(function (snapshot) {
snapshot.forEach(function (childSnapshot) {
var key = childSnapshot.key;
var childData = childSnapshot.val();
console.log(childData)
});
});
});
app.post('/', (req, res) => {
var uid = req.body.uid;
var date = req.body.dateEntry;
var date = new Date(req.body.dateEntry);
var leave = false;
var hours = req.body.hours;
insertHours(uid, date, leave, hours);
res.redirect('back');
});
app.listen(8080, () => console.log('server started at localhost'));