UNPKG

nyx_server

Version:

Node内容发布

136 lines (124 loc) 4.3 kB
var config = require("../../config/default-config"); var DBTemplate = require("../../db/DBTemplate"); var projectMatchService = require('../ProjectMatchService'); var projectFn = require('../Project'); var projectLoader = require('../ProjectLoader'); var dbtemplate = new DBTemplate(config.NYX_DB_CONFIG_NAME); /** * 得到项目集合 * @param name 项目名称 可以是表达式 * @return 返回匹配的项目 */ module.exports.getProjects = function(projectName){ return projectMatchService.getProjects.bind(this)().then(function(projects){ var ret = []; if(projects.length==0){ return ret; } var regx = new RegExp(projectName); var keys = Object.keys(projects); keys.forEach(function(key){ var project = projects[key]; var _name = project.name; if(regx.test(_name)){ ret.push(project); } }); return ret; }); }; /** * 返回敬请匹配的项目 * @params 项目名称 */ module.exports.getProject = function(name){ return projectLoader.loadProjects.bind(this)({name: name}) .then(function(projects){ return projects[0].config; }); }; /** * 得到所有匹配路径的模板 * @param matchPath 匹配路径 */ module.exports.getTemplates = function(matchPath){ throw new Error('no implements!'); }; /** * 得到项目的模板 * @param projectName 项目名称 */ module.exports.getProjectTemplates = function(projectName){ return projectLoader.loadProjects.bind(this)({name: projectName}) .then(results => results[0]).then(function(project){ return projectFn.loadTemplates(project).map(function(template){ return template.config; }); }); }; /** * 得到绑定了模板的碎片数据 * @param id 碎片id * @param templateDataId 绑定的模板实例id */ module.exports.getChipData = function(id , templateDataId){ var params = []; var sql = 'select * from chip_data_t where id=? '; params.push(id); if(templateDataId){ sql += ' and templateDataId = ?'; params.push(templateDataId); }else{ sql += ' and templateDataId is null'; } return dbtemplate.query(sql , params).then(function(result){ if(result.length>0){ var ret = result[0].data; return JSON.parse(ret); } return null; }); }; /** * 保存chip数据 */ module.exports.updateChipData = function(id , templateDataId , editData , chipType){ if(templateDataId){ var sql = "select * from chip_data_t where id=? and templateDataId = ?"; return dbtemplate.query(sql , [id , templateDataId]).then(function(result){ if(result.length==0){ //还没有绑定模板的数据 sql = 'insert into chip_data_t(id , templateDataId , data , chipType , createdTime) value(?,?,?,?,now())'; return dbtemplate.query(sql , [id,templateDataId,JSON.stringify(editData),chipType]); }else{ sql = 'update chip_data_t set data=? , chipType=? , modifyTime=now() where id=? and templateDataId=?'; return dbtemplate.query(sql , [JSON.stringify(editData),chipType,id,templateDataId]); } }); }else{ //如果没有指定绑定的模板数据id直接更新 sql = 'update chip_data_t set data=? , chipType=? , modifyTime=now() where id=? and templateDataId is null'; var params = [JSON.stringify(editData) , chipType , id]; console.log(sql , params); return dbtemplate.query(sql , params); } }; module.exports.setChipPubUrl = function(id , templateDataId , publishUrl){ var params = []; var sql = 'update chip_data_t set puburl=? where id=? '; params.push(publishUrl); params.push(id); if(templateDataId){ sql += " and templateDataId=? "; params.push(templateDataId); }else{ sql += ' and templateDataId is null'; } return dbtemplate.query(sql , params).then(function(result){ if(result.changedRows>0){ return true; }else{ return false; } }); };