-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
132 lines (118 loc) · 3.48 KB
/
app.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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* Load NodeJS Modules */
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var app = express();
app.use(express.static('public'));
//To Support body on post requests
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
/* Load Local Modules */
var sl = require('./modules/serviceLayer');
//var db = require('./modules/persist');
var slOptions = {
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
}
}
var output = {};
//First Thing, coonect to SL and store a SessionID
if (!process.env.APIHUB) {
sl.Connect(function (error, resp) {
if (error) {
console.error("Can't Connect to Service Layer");
console.error(error);
return; // Abort Execution
} else {
slOptions.headers["Cookie"] = resp.cookie;
}
});
} else {
slOptions.headers["demoDB"] = process.env.B1_COMP_ENV
slOptions.headers["APIKey"] = process.env.APIKey
}
//db.Connect(function (error) {
// if (error) {
// console.error("Can't Connect to CF Database");
// console.error(error);
// }
//})
//Endpoint to POST items to Service Layer
app.post('/InsertItem', function (req, res) {
//db.Insert(req.body, function (error, resp) {
// res.redirect('/');
//});
});
//Endpoint to POST items to Service Layer
app.get('/SelectItems', function (req, res) {
//db.Select(function (error, resp) {
// if (error) {
// console.log('Cant Select rows')
// console.log(error);
// } else {
// res.setHeader('Content-Type', 'application/json');
// res.send(resp);
// }
//});
});
//EndPoint To retrieve Items from Service Layer
app.get('/GetItems', function (req, res) {
sl.GetItems(slOptions, function (error, resp) {
if (error) {
console.error("Can't get Items from Service Layer - " + error);
res.send(error);
} else {
res.setHeader('Content-Type', 'application/json');
res.send(resp);
}
});
});
//EndPoint to Retrieve Environment Variables
app.get('/GetEnv', function (req, res) {
output.sl = slOptions.headers.Cookie || "API Biz Hub"
output.instance = 0;
output.instance = (process.env.CF_INSTANCE_INDEX * 1) + 1
output.env = process.env.HOME;
res.send(output);
});
//Synchronize Local DB with B1 SL
app.post('/Sync', function (req, res) {
console.log("LETS SYNC ITEMS");
//db.Select(function (error, rows) {
// if (error) {
// console.log('Cant Select rows')
// console.log(error);
// } else {
// console.log("HERE ARE ITEMS TO SYNC" + JSON.stringify(rows));
// var items = 0
// for (var i = 0; i < rows.length; i++) {
// var body = { ItemCode: rows[i].code, ItemName: rows[i].name }
// console.log("Sync Item " + rows[i].code)
// sl.PostItems(slOptions, body, function (err, slItem) {
// items++;
// if (!err) {
// db.Update(slItem.ItemCode, function (err, resp) {
// if (!err) {
// console.log("Item Synchronized");
// } else {
// console.error(err);
// }
// })
// if (items == rows.length){
// res.redirect('/');
// }
// }
// })
// }
// }
//});
});
// Root path to retrieve Index.html
//app.get('/', function (req, res) {
// res.sendFile(path.join(__dirname, 'views/index.html'));
//});
var port = process.env.PORT || 8080
app.listen(port, function () {
console.log('Example app listening on port ' + port);
});