UNPKG

wages-ws

Version:

This server read data from a cassandra DB and provide services for MyWagesApp

226 lines (183 loc) 7.61 kB
var express = require('express'); var app = express(); var cassandra = require('cassandra-driver'); var async = require('async'); var dateFormat = require('dateformat'); var client = new cassandra.Client({ contactPoints: ['10.226.112.47'], keyspace: 'wfm' }); client.connect(function (err) { if (err) { return console.error('There was an error when connecting', err); } console.log('Connected to cluster with %d host(s): %j', client.hosts.length, client.hosts.keys()); console.log('Keyspaces: %j', Object.keys(client.metadata.keyspaces)); }); // WOSH WEB SERVICE app.get('/WOSH_service/store_nbr/:store_nbr', function (req, res) { console.log("Received a GET WOSH request"); var storeNbr = req.params.store_nbr; var now = new Date(); var dateToday = dateFormat(now, "yyyy-mm-dd"); var subtractedSaturday; //case stmts for how far away saturday is -4,-3,-2 var dayNumber = now.getDate(); //0-31 var weekday = now.getDay(); //what if the dayNumber is less than switch(weekday){ case 0: subtractedSaturday = new Date(new Date().setDate(new Date().getDate()-1)); break; case 1: subtractedSaturday = new Date(new Date().setDate(new Date().getDate()-2)); break; case 2: subtractedSaturday = new Date(new Date().setDate(new Date().getDate()-3)); break; case 3: subtractedSaturday = new Date(new Date().setDate(new Date().getDate()-4)); break; case 4: subtractedSaturday = new Date(new Date().setDate(new Date().getDate()-5)); break; case 5: subtractedSaturday = new Date(new Date().setDate(new Date().getDate()-6)); break; case 6: subtractedSaturday = now; break; default: console.log("MAJOR ERROR: SOMETHING IS UP WITH THE DATE NUMBER"); break; } var dateSaturday = dateFormat(subtractedSaturday, "yyyy-mm-dd"); console.log("subtractedSaturday is" + subtractedSaturday); console.log("formatted saturday is" + dateSaturday); client.execute('SELECT win,hours_worked FROM wfm.punch WHERE store_nbr=? AND punch_date<=? AND punch_date >= ?',[storeNbr, dateToday, dateSaturday],{prepare:true}, function (err, result) { if (err) { return console.error('There was an errorwhile trying to retrieve data from system.local', err); } //get everything up to saturday var row = result.rows; var jsonData = []; for(i = 0; i < row.length; i++){ //get the win number and hours worked console.log("Win number is ", row[i].win); console.log("Hours_worked "+ row[i].hours_worked); var tempRow = row[i]; var tempWin = row[i].win; var tempHrsWkd = row[i].hours_worked; var winExists= 0; if(i==0){ jsonData.push(tempRow); }else{ for(x = 0 ; x < jsonData.length; x++ ){ //check if the win number has already been added //if it has already been added add the work hours and if(tempWin==jsonData[x].win){ //add worked hours jsonData[x].hours_worked += tempHrsWkd; winExists=1; break; } } if(!winExists){ jsonData.push(tempRow); } } } //var wins = result.rows.win; console.log("JSON DATA"); console.log(jsonData); res.send(jsonData); }); }) /*-------------------------------------------------------------------------------------*/ //PUNCH DATA BY STORE NUMBER AND DATE WEB SERVICE app.get('/PD_ClockedIn/store_nbr/:store_nbr', function (req, res) { console.log("Received a GET PunchData request by STORE NUMBER"); var storeNbr = req.params.store_nbr; var now = new Date(); var dateToday = dateFormat(now, "yyyy-mm-dd"); client.execute('SELECT win FROM wfm.punch_clockin WHERE store_nbr=? AND punch_date=?',[storeNbr, dateToday], {prepare : true}, function (err, result) { if (err) { return console.error('There was while trying to retrieve data from system.local', err); } var row = result.rows; console.log('Obtained row: ', row); res.send(row); console.log('THE STORE NUMBER THAT WAS INPUT IS: '+storeNbr); console.log("THE DATE IS "+now); console.log("THE REGULAR DATE IS " + dateToday); }); }) //PUNCH DATA CURRENT STATUS IS WORKING WEB SERVICE app.get('/PD_ClockedIn', function (req, res) { console.log("Received a GET PunchData request for CURRENT STATUS"); var date = new Date(); var dateToday = dateFormat(date, "yyyy-mm-dd"); client.execute('SELECT win FROM wfm.punch_clockin WHERE punch_date = ? allow filtering;',[dateToday], {prepare : true}, function (err, result) { if (err) { return console.error('There was while trying to retrieve data from system.local', err); } var row = result.rows; console.log('Obtained row: ', row); console.log("todays date" + dateToday); res.send(row); }); }) //PUNCH DATA CURRENT STATUS IS LUNCH WEB SERVICE app.get('/PD_MealBreak/store_nbr/:store_nbr', function (req, res) { console.log("Received a GET PunchData request for CURRENT STATUS"); var storeNbr = req.params.store_nbr; var date = new Date(); var dateToday = dateFormat(date, "yyyy-mm-dd"); client.execute('SELECT win FROM wfm.punch_meal WHERE store_nbr=? AND punch_date = ? allow filtering;',[storeNbr, dateToday], {prepare : true}, function (err, result) { if (err) { return console.error('There was while trying to retrieve data from system.local', err); } var row = result.rows; console.log('Obtained row: ', row); console.log("todays date" + dateToday); res.send(row); }); }) /*-------------------------------------------------------------------------------------*/ //OVER TIME WEB SERVICE app.get('/Overtime_service/id/:id/text/:text', function (req, res) { console.log("Received a GET OverTime request"); var idInput = req.params.id; var textInput = req.params.text; client.execute('SELECT * FROM wfm.test WHERE id=? AND text=?',[idInput, textInput],{prepare:true}, function (err, result) { if (err) { return console.error('There was while trying to retrieve data from system.local', err); } var row = result.rows; console.log('Obtained row: ', row); res.send(row); }); }) /*-------------------------------------------------------------------------------------*/ // This responds a POST request for the homepage app.post('/', function (req, res) { console.log("Got a POST request for the homepage"); res.send('Hello POST'); }) // This responds a DELETE request for the /del_user page. app.delete('/del_user', function (req, res) { console.log("Got a DELETE request for /del_user"); res.send('Hello DELETE'); }) // This responds a GET request for the /list_user page. app.get('/list_user', function (req, res) { console.log("Got a GET request for /list_user"); res.send('Page Listing'); }) // This responds a GET request for abcd, abxcd, ab123cd, and so on app.get('/ab*cd', function (req, res) { console.log("Got a GET request for /ab*cd"); res.send('Page Pattern Match'); }) var server = app.listen(8080, function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port) })