Skip to content

Instantly share code, notes, and snippets.

@hugesean
Last active August 27, 2018 04:52
Show Gist options
  • Save hugesean/ebe29523c7ef5451c33b4b7e336ac062 to your computer and use it in GitHub Desktop.
Save hugesean/ebe29523c7ef5451c33b4b7e336ac062 to your computer and use it in GitHub Desktop.
var ApiBuilder = require('claudia-api-builder'),
api = new ApiBuilder();
var mysql = require('mysql');
var {Op, Sequelize} = require('sequelize');
module.exports = api;
api.get('/characters', function () {
return new Promise(
(resolve, reject) => {
loadDatabase()
.then((db) => {
resolve(getCharacters(db));
})
.catch((ex) => {
reject( `Ok, something went seriously wrong...\n ${ex.message}`);
});
});
});
function loadDatabase() {
var {Op, Sequelize} = require('sequelize');
return new Promise(
(resolve, reject) => {
const db = {};
const sequelize = new Sequelize(
'backend',
'<YOUR DB USERNAME>',
'<YOUR DB PASSWORD>',
{
host: 'backend.<YOUR APP ID>.<YOUR AWS REGION>.rds.amazonaws.com',
dialect: 'mysql',
port:'3305',
pool: {
max: 5,
min: 0,
idle: 300
}
});
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
//Models/tables
db.characters = require('./models/characters.js')(sequelize,Sequelize);
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.op=Op;
resolve(db);
})
.catch(err => {
console.error('Unable to connect to the database:', err);
reject(err);
});
});
}
function getCharacters(db) {
return new Promise(
(resolve, reject) => {
db.characters.findAll().then(function(result) {
db.sequelize.connectionManager.close();
resolve(result);
}).error(function (err) {
console.log("Error:" + err);
reject(err);
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment