コード例 #1
0
ファイル: update.js プロジェクト: asnead/mjournal
function update(run, callback) {
  var valid = userSchema.validate(run.options);
  if (valid.error) {
    setImmediate(function() {
      callback(new errors.BadRequest(valid.error.message));
    });
    return;
  }
  var user = _.pick(run.options, "email", "theme");
  var dbOp = db("users").update(user).where({id: run.options.user.id});
  log.debug({
    user: user
  }, "updating user");
  dbOp.exec(function(error) {
    if (error && /unique/i.test(error.message)) {
      var upError = new errors.Conflict(
        "That email belongs to another account");
      callback(upError);
      return;
    }
    if (error) {
      callback(error);
      return;
    }
    callback();
  });
}
コード例 #2
0
ファイル: setup.js プロジェクト: EngErik/mjournal
 onDb.raw(ddl).exec(function (error, result) {
   if (alreadyExists(error)) {
     log.debug('recognized an already exists error code')
     callback(null, result)
     return
   }
   callback(error, result)
 })
コード例 #3
0
ファイル: setup.js プロジェクト: EngErik/mjournal
function runFile (ddlPath, callback) {
  log.debug({path: ddlPath}, 'running db init DDL file')
  fs.readFile(ddlPath, 'utf8', function (error, ddl) {
    if (error) {
      callback(error)
      return
    }
    var statements = ddl.split(';')
    async.eachSeries(statements, async.apply(runDdl, db), callback)
  })
}
コード例 #4
0
ファイル: setup.js プロジェクト: EngErik/mjournal
 function (error, result) {
   if (error && error.code === '28P01') {
     log.debug(error, 'Admin authentication to DB failed. ' +
       'Continuing with app user assuming DB already exists.')
     // authentication failed
     // presume role & database have already been setup
     // move on to schema
     callback()
     return
   }
   callback(error, result)
 }
コード例 #5
0
ファイル: setup.js プロジェクト: EngErik/mjournal
function runDdl (onDb, ddl, callback) {
  if (!ddl.trim()) {
    setImmediate(callback)
    return
  }
  log.debug({ddl: ddl}, 'running db init DDL')
  onDb.raw(ddl).exec(function (error, result) {
    if (alreadyExists(error)) {
      log.debug('recognized an already exists error code')
      callback(null, result)
      return
    }
    callback(error, result)
  })
}
コード例 #6
0
ファイル: update.js プロジェクト: EngErik/mjournal
 run.dbOp.update(set).where(where).exec(function (error, rowCount) {
   if (error) {
     log.info({
       err: error
     }, 'error updating an entry')
     next(error)
     return
   }
   if (rowCount < 1) {
     log.info(
       {options: run.options},
       'zero rowCount on entry update (HAX0RZ?)'
     )
     next(new errors.NotFound('No entry with id ' + run.options.id))
     return
   }
   log.debug(set, 'entries/update')
   select(where, run, next)
 })
コード例 #7
0
ファイル: delete.js プロジェクト: EngErik/mjournal
 run.dbOp.andWhere(where).exec(function (error, rowCount) {
   if (error) {
     log.info({
       err: error
     }, 'error deleting an entry')
     next(error)
     return
   }
   if (rowCount < 1) {
     log.info(
       {options: run.options},
       'zero rowCount on entry delete (HAX0RZ?)'
     )
     next(new errors.NotFound('No entry with id ' + run.options.id))
     return
   }
   log.debug(where, 'entries/delete')
   next()
 })
コード例 #8
0
ファイル: viewTags.js プロジェクト: EngErik/mjournal
function execute (run, next) {
  log.debug({
    sql: run.dbOp.toString()
  }, 'viewTags')
  run.dbOp.exec(function (error, rows) {
    if (error) {
      log.error({
        err: error
      }, 'error in viewTags query')
      next(error)
      return
    }
    var set = _.map(rows, function (row) {
      return row.tags.split(' ')
    })
    set = _.flatten(set)
    set = _.uniq(set)
    run.result = set.map(function (tag) {
      return {text: tag}
    })
    next()
  })
}
コード例 #9
0
ファイル: server.js プロジェクト: asnead/mjournal
 setTimeout(function() {
   log.debug("server exiting abruptly. Connections did not complete quickly.");
   process.exit();
 }, 10 * 1000);
コード例 #10
0
ファイル: server.js プロジェクト: asnead/mjournal
 server.close(function() {
   log.debug("server connections gracefully closed. Exting.");
   process.exit();
 });
コード例 #11
0
ファイル: server.js プロジェクト: asnead/mjournal
var errors = require("app/errors");
process.on("uncaughtException", errors.onUncaughtException);

var config = require("config3");
var validateConfig = require("./validateConfig");
var valid = validateConfig(config);
if (valid.error) {
  console.error(valid.error.details, "Config is invalid. Process will exit.");
  process.exit(33);
}

var _ = require("lodash");
var log = require("app/log");
log.debug({
    env: process.env.NODE_ENV,
    db: _.omit(config.db, "password")
  },
  "%s server process starting", config.pack.name);
var app = require("app");
var server;

function gracefulShutdown() {
  log.info("server doing graceful shutdown due to kill signal");
  if (!server) {
    process.exit();
  }
  server.close(function() {
    log.debug("server connections gracefully closed. Exting.");
    process.exit();
  });
コード例 #12
0
ファイル: signIn.js プロジェクト: asnead/mjournal
 function denied(error) {
   log.debug({
     email: options.email
   }, "user sign-in denied");
   callback(error || defaultError);
 }