exports.add = function( serviceConfig, projectConfig, configFileName, mode ) { verbose = mode; var path = require('path'), pathSep = path.sep, view = {}; var servicePath = projectConfig.servicesRoot + pathSep + serviceConfig.path; console.log('Create the "%s/%s" %s-type service with the following URL: %s', process.cwd(), servicePath, serviceConfig.type, serviceConfig.uriTemplate); if ( generator.createDirectoryTree(servicePath, [], false) ) { console.log('%s directory created', servicePath ); extend(view, extendConfig(serviceConfig)); var templates = []; if (serviceConfig.type === 'OPERATION') { templates = [ "service.yml", "postOperation-requestBody.json", "postOperation-responseBody.json" ]; } else if (serviceConfig.type === 'COLLECTION') { templates = [ "service.yml", "getCollection-responseBody.json", "postCollection-requestBody.json", "postCollection-responseBody.json" ]; } else if (serviceConfig.type === 'RESOURCE') { templates = [ "service.yml", "getResource-responseBody.json", "putResource-requestBody.json", "putResource-responseBody.json", "deleteResource-responseBody.json" ]; } templates.forEach(function(template) { generator.processTemplate(view, { sourceBaseDir: path.join(process.cwd(), 'templates', 'services', serviceConfig.type), targetBaseDir: servicePath, template: template }); }); } updateProjectConfig(serviceConfig, projectConfig, configFileName); };
var generateServiceDoc = function(serviceDesc, context) { var templateFileName = path.join(process.cwd(), 'templates', 'docs', 'restapi.html'), outFileName = path.join(process.cwd(), 'docs', generateDocFileName(serviceDesc)), view = {}; var relPath = ""; for (var l=0; l<serviceDesc.contentPath.split('/').length; l++ ) { relPath = relPath + ".." + path.sep; } context.relPath = relPath; // console.log('Generate service doc: ' + serviceDesc.name, context.relPath); extend(view, context, convertMarkdown(serviceDesc)); generateDoc(templateFileName, view, outFileName); };