Skip to content

Commit

Permalink
Merge branch 'master' of github.com:RedHatTraining/DO288-apps
Browse files Browse the repository at this point in the history
  • Loading branch information
richardallred committed Aug 3, 2019
2 parents 6f4e126 + e5e3675 commit 99e7349
Show file tree
Hide file tree
Showing 27 changed files with 1,304 additions and 60 deletions.
Empty file.
21 changes: 0 additions & 21 deletions todo-api-micro/src/main/fabric8/deployment.yml

This file was deleted.

18 changes: 0 additions & 18 deletions todo-api-micro/src/main/fabric8/route.yml

This file was deleted.

21 changes: 0 additions & 21 deletions todo-api-micro/src/main/fabric8/svc.yml

This file was deleted.

36 changes: 36 additions & 0 deletions todo-backend/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
var restify = require('restify');

var controller = require('./controllers/items');
var serverinfo = require('./controllers/serverinfo');

var db = require('./models/db');
var model = require('./models/items');

model.connect(db.params, function(err) {
if (err) throw err;
});

var server = restify.createServer()
.use(restify.fullResponse())
.use(restify.queryParser())
.use(restify.bodyParser())
.use(restify.CORS());;

controller.context(server, '/todo/api', model);
serverinfo.context(server, '/todo/api');

var port = process.env.PORT || 8080;
server.listen(port, function (err) {
if (err)
console.error(err);
else
console.log('App is ready at : ' + port);
});


/*
process.on('uncaughtException', function (err) {
console.error(JSON.parse(JSON.stringify(err, ['stack', 'message', 'inner'], 2)))
});
*/

131 changes: 131 additions & 0 deletions todo-backend/controllers/items.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@

var model = undefined;

exports.context = function(server, path, itemsModel) {
if (!server)
done('has to provide a restify server object');

var context = "/items";
if (path)
context = path + context;

server.get(context + '/', this.list);
server.get(context + '/:id', this.read);
server.get(context + '-count', this.count);
server.post(context + '/', this.save);
server.del(context + '/:id', this.destroy);

model = itemsModel;
};

exports.list = function(req, res, next) {
var page_no = req.query.page || 1;
var sortField = req.query.sortFields || "id";
var sortDirection = req.query.sortDirections || "asc";

model.listAll(page_no, sortField, sortDirection, function(err, items) {
if (err) {
res.send(err);
}
else {
if (items) {
model.countAll(function(err, n) {
if (err) {
res.send(err);
}
else {
if (n) {
var page = {
"currentPage" : page_no,
"list" : items,
"pageSize" : 10,
"sortDirections" : sortDirection,
"sortFields" : sortField,
"totalResults" : n
};
res.json(page);
next();
}
}
});
}
else {
res.send(err);
}
}
})
};

exports.read = function(req, res, next) {
var key = req.params.id;
model.read(key, function(err, item) {
if (err) {
res.send(err);
}
else {
if (item) {
res.json(item);
next();
}
else {
res.send(err);
}
}
})
};


exports.count = function(req, res, next) {
model.countAll(function(err, n) {
if (err) {
res.send(err);
}
else {
var page = {
count: n
};
res.json(page)
next();
}
})
};


exports.save = function(req, res, next) {
if (req.params.id) {
model.update(req.params.id, req.params.description, req.params.done, function(err, item) {
if (err) {
res.send(err);
}
else {
res.json(item);
next();
}
});
}
else {
model.create(req.params.description, req.params.done, function(err, item) {
if (err) {
res.send(err);
}
else {
res.json(item);
next();
}
});
}
};


exports.destroy = function(req, res, next) {
if (req.params.id) {
model.destroy(req.params.id, function(err, item) {
if (err) {
res.send(err);
}
else {
res.json(item);
}
});
}
}
29 changes: 29 additions & 0 deletions todo-backend/controllers/serverinfo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
var os = require('os');

exports.context = function(server, path) {
if (!server)
done('has to provide a restify server object');

server.get(path + '/host', this.serverInfo);
};

exports.serverInfo = function(req, res, next) {
var address;
var ifaces = os.networkInterfaces();

for (var dev in ifaces) {
var iface = ifaces[dev].filter(function(details) {
return details.family === 'IPv4' && details.internal === false;
});
if (iface.length > 0)
address = iface[0].address;
}

var reply = {
ip: address,
hostname: os.hostname()
};
res.json(reply);
next();
};

10 changes: 10 additions & 0 deletions todo-backend/models/db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

module.exports.params = {
dbname: process.env.DATABASE_NAME,
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
params: {
host: process.env.DATABASE_SVC,
dialect: 'mysql',
}
};
Loading

0 comments on commit 99e7349

Please sign in to comment.