Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 40 additions & 30 deletions Generator-SRC/WriteLibrary.gs
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,29 @@ function writeLibraries_(name){
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

for(var i in sheets){
if(skipSheets.indexOf(sheets[i].getName()) == -1 || (name && sheets[i].getName() == name)){


var ret = makeLibrary(sheets[i])
var libraryProject =
{ "files":
[
{
"name": ret.fileName,
"type": "server_js",
"source": ret.code
}
]
};

try{createNewProject(ret.fileName,libraryProject,libOutputfolderId);}
catch(e){Logger.log(e)}
if(skipSheets.indexOf(sheets[i].getName()) == -1){
if ((name && sheets[i].getName() == name) || !name){

var ret = makeLibrary(sheets[i])
var libraryProject =
{ "files":
[
{
"name": ret.fileName,
"type": "server_js",
"source": ret.code
}
]
};

try{
createNewProject(ret.fileName,libraryProject,libOutputfolderId);
}catch(e){
Logger.log(e);
var folder = DriveApp.getFolderById(libOutputfolderId);
folder.createFile(ret.fileName+"-dump", ret.code, MimeType.PLAIN_TEXT);
}
}
}
}
}
Expand Down Expand Up @@ -75,22 +81,27 @@ function makeLibrary(sheet,addHeader){
function writeService(serviceObj){
var serviceName = JSON.parse(serviceObj[0]).id.split('.')[1];
var serviceFunctions = ""; // ['self_.'+serviceName+' = function(){};'];
/*var serviceRoot = 'self_.'+serviceName;
var serviceFunctions = '\n\n'+serviceRoot+' = function(){};';*/
for(var i in serviceObj){
if(serviceObj[i] !== ""){
serviceFunctions += writeFunction(JSON.parse(serviceObj[i]));
}
}
return serviceFunctions
}
function writeFunction(functionObj){
function writeFunction(functionObj, serviceRoot){
var method = functionObj.method;
var postBody = functionObj.postBody;
var url = ("\""+ functionObj.urlPath.replace(/\{/g,"\"+").replace(/\}/g,"+\"") + "\"").replace(/\+\"\"/g,'');
var url = ("\""+ functionObj.urlPath.replace(/\{\+?/g,"\"+").replace(/\}/g,"+\"") + "\"");
var id = functionObj.id.split('.');
var service = id.shift();
var functionId = id.map(function(word,i){return (i == 0)?word: word.charAt(0).toUpperCase() + word.slice(1)}).join('');
//var functionId = id.pop();
var resourceName = functionObj.resource || "remove";
var fetchMethod = functionObj.fetchMethod;

var org_params = (functionObj.params === undefined) ? [] : functionObj.params.slice();
var params = functionObj.params || [];
if(postBody){params.push(postBody+"Resource")}
params.push("options");
Expand All @@ -107,13 +118,10 @@ function writeFunction(functionObj){
jsDoc += '* @param {object} options Keypair of all optional parameters for this call\n';
}else if(params[i].indexOf("Resource") != -1){
jsDoc += '* @param {object} '+params[i]+' An object containing the '+params[i]+' for this method\n';
}else
{
}else{
jsDoc += '* @param {' + functionObj.paramDesc[params[i]].type + '} '+ params[i] + ' ' + functionObj.paramDesc[params[i]].description + '\n';

}


}
}

Expand All @@ -122,14 +130,16 @@ function writeFunction(functionObj){
}
jsDoc += '*\/\n';



var newFunction = 'function '+functionId+'('+params.join()+'){'+
'\n var path = buildUrl_('+url+',options);';
var newFunction = 'function '+functionId+'('+params.join()+'){'
//var newFunction = serviceRoot + '["'+ functionId + '"] = function ('+params.join()+'){';
org_params.map(function(x) {
if(x!=="options"){newFunction += '\n options.'+x+' = '+x+';'};
});
newFunction +='\n var path = buildUrl_('+url+',options);';
if(postBody){
newFunction +='\n var callOptions = {method:"'+method+'",payload:JSON.stringify('+(postBody + 'Resource')+')};'
newFunction += '\n var callOptions = {method:"'+method+'",payload:JSON.stringify('+(postBody + 'Resource')+')};';
}else{
newFunction +='\n var callOptions = {method:"'+method+'"};';
newFunction += '\n var callOptions = {method:"'+method+'"};';
}

if(fetchMethod === "CALL"){
Expand All @@ -139,7 +149,7 @@ function writeFunction(functionObj){
newFunction += '\n var '+resourceName+'Items = CALLPAGE_(path,callOptions,"items");'
newFunction += '\n return '+resourceName+'Items;';
}
newFunction += '\n}\n';
newFunction += '\n};\n';

return jsDoc+newFunction;
}