cnpmjs.org
Version:
Private npm registry and web for Enterprise, base on MySQL and Simple Store Service
55 lines (45 loc) • 950 B
JavaScript
/**!
* cnpmjs.org - services/module_log.js
*
* Copyright(c) fengmk2 and other contributors.
* MIT Licensed
*
* Authors:
* fengmk2 <fengmk2@gmail.com> (http://fengmk2.github.com)
*/
;
/**
* Module dependencies.
*/
var models = require('../models');
var ModuleLog = models.ModuleLog;
exports.create = function* (data) {
var row = ModuleLog.build({
name: data.name,
username: data.username || 'anonymous',
log: ''
});
return yield row.save();
};
var ONE_MB = 1024 * 1024;
exports.append = function* (id, log) {
if (!log) {
return null;
}
var row = yield* exports.get(id);
if (!row) {
return null;
}
if (row.log) {
row.log += '\n' + log;
} else {
row.log = log;
}
if (row.log.length >= ONE_MB) {
row.log = '...\n' + row.log.substring(ONE_MB / 2);
}
return yield row.save(['log']);
};
exports.get = function* (id) {
return yield ModuleLog.find(Number(id));
};