Last active
May 13, 2019 14:00
-
-
Save liposo/19978792ffa0576e0266d9cb1603ca25 to your computer and use it in GitHub Desktop.
Add values and retrieve as JSON from a Google Sheet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function doGet(e) { | |
var lock = LockService.getPublicLock(); | |
lock.waitLock(30000); | |
var file = SpreadsheetApp.openByUrl(e.parameter.sheetUrl); | |
//Select the first page in the Sheet document | |
var sheet = file.getSheets()[0]; | |
// if(e.parameter.sheetName) { | |
// sheet = file.getSheetByName(unescape(e.parameter.sheetName)); | |
// } | |
switch(e.parameter.action) { | |
// case "pages": | |
// return get_pages(file); | |
case "insert": | |
var title = unescape(e.parameter.title); | |
var url = unescape(e.parameter.url) | |
return insert_value(title, url, sheet); | |
case "read": | |
return get_values(sheet); | |
default: | |
return ContentService | |
.createTextOutput(JSON.stringify({"error":"unexpected action parameter"})) | |
.setMimeType(ContentService.MimeType.JSON); | |
} | |
} | |
//Get Sheet document pages | |
//function get_pages(file) { | |
// var sheets = file.getSheets(); | |
// | |
// var jsonArray = []; | |
// for(var i=0; i<sheets.length; i++) { | |
// var sheet = sheets[i].getName(); | |
// var entry = { | |
// "page": sheet | |
// }; | |
// jsonArray.push(entry); | |
// } | |
// | |
// return ContentService.createTextOutput(JSON.stringify(jsonArray)).setMimeType(ContentService.MimeType.JSON); | |
//} | |
function insert_value(title, url, sheet) { | |
try { | |
var rowData = sheet.appendRow([title, url]); | |
return ContentService | |
.createTextOutput(JSON.stringify({"result":"success"})) | |
.setMimeType(ContentService.MimeType.JSON); | |
} catch(e){ | |
return ContentService | |
.createTextOutput(JSON.stringify({"result":"error"})) | |
.setMimeType(ContentService.MimeType.JSON); | |
} | |
} | |
function get_values(sheet) { | |
var lastRow = sheet.getLastRow(); | |
var rowValues = []; | |
for(var rowIndex=1; rowIndex<=lastRow; rowIndex++) { | |
var colStartIndex = 1; | |
var rowNum = 1; | |
var range = sheet.getRange(rowIndex, colStartIndex, rowNum, sheet.getLastColumn()); | |
var values = range.getValues(); | |
rowValues.push(values[0]); | |
} | |
// create json | |
var jsonArray = []; | |
var numberOfRows = rowValues.length | |
for(var i=0; i<numberOfRows; i++) { | |
var line = rowValues[i]; | |
var title = line[0]; | |
var url = line[1]; | |
var entry = { | |
"title": title, | |
"url": url | |
}; | |
jsonArray.push(entry); | |
} | |
return ContentService.createTextOutput(JSON.stringify(jsonArray)).setMimeType(ContentService.MimeType.JSON); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment