|
@@ -1,10 +1,20 @@
|
|
|
var sql = require('sql-ringojs-client');
|
|
|
var {Application} = require("stick");
|
|
|
+var fs = require('fs');
|
|
|
+var {Template} = require('reinhardt/template');
|
|
|
|
|
|
// DO NOT TOUCH THE FOLLOWING LINE.
|
|
|
// THIS VARIABLE IS REGEX REPLACED BY setup.py
|
|
|
var dbHost = 'localhost';
|
|
|
|
|
|
+var sortFortunes = function(a, b) {
|
|
|
+ return (a.message < b.message) ? -1 : (a.message > b.message) ? 1 : 0;
|
|
|
+};
|
|
|
+
|
|
|
+var fortuneTemplate = module.singleton('fortuneTemplate', function() {
|
|
|
+ return new Template(fs.read(module.resolve('./templates/fortunes.reinhardt')));
|
|
|
+})
|
|
|
+
|
|
|
var datasource = module.singleton('pooling-datasource', function() {
|
|
|
return sql.connect("jdbc:mysql://" + dbHost + "/hello_world", 'benchmarkdbuser', 'benchmarkdbpass');
|
|
|
});
|
|
@@ -61,3 +71,27 @@ app.get('/db', function(request) {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+app.get('/fortune', function() {
|
|
|
+ try {
|
|
|
+ var connection = datasource.getConnection();
|
|
|
+ var fortunes = sql.query(connection, 'select * from Fortune');
|
|
|
+ fortunes.push({
|
|
|
+ id: 0,
|
|
|
+ message: 'Additional fortune added at request time.'
|
|
|
+ });
|
|
|
+ fortunes.sort(sortFortunes);
|
|
|
+ return {
|
|
|
+ status: 200,
|
|
|
+ headers: {"Content-Type": "text/html; charset=UTF-8"},
|
|
|
+ body: [fortuneTemplate.render({fortunes: fortunes})]
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ connection.close();
|
|
|
+ connection = null;
|
|
|
+ } finally {
|
|
|
+ if (connection !== null) {
|
|
|
+ connection.close();
|
|
|
+ }
|
|
|
+ }
|
|
|
+});
|