1003 Handle REST Service

.
1003 Handle REST Service
How to write Google App Script to handle REST Service
Objective
1. Create generic record utility functions
addRecord()
editRecord()
deleteRecord()
selectRecord()
selectRecords()
2. Create record utility manager ie manageRecord()
1) Create a spreadsheet
eg HandleRestService.
Create a sheet �persons�.
Set the first row�
tid | timestamp | name | pid | age |
Set the field format for the fields especially tid field...
2) Open Code Editor within the spreadsheet
eg HandleRestService.
3) Edit the Script
We write few functions to perform specific tasks:
logGlobalVar() | Log the global var |
doGet() and doPost() | To handle Get and Post request |
handleResponse() | Read action value and respond |
manageRecords | Handle record management request and return TextOutput |
findInArray | Find string in the array |
addRecords(), editRecords(), deleteRecords(), selectRecord(), selectRecords() | Record management functions |
Test functions | To test for expected results |
/*global var*/ var SCPID=ScriptApp.getScriptId(); /*script id*/ var SST=SpreadsheetApp.getActiveSpreadsheet(); /*active spreadsheet */ var SSTID=SpreadsheetApp.getActiveSpreadsheet().getId(); /*spreadsheet id*/ var SSTFILE=DriveApp.getFileById(SSTID); /*get file*/ var Folders = SSTFILE.getParents(); /*get parent collection*/ while (Folders.hasNext()) { var Folder = Folders.next(); Logger.log(Folder.getName()); var FOLID = Folder.getId(); /*get id for first parent item*/ } /*log the global var*/ function logGlobalVar(){ Logger.log("script id:"+SCPID); Logger.log("sheet id:"+SSTID); Logger.log("folder id:"+FOLID); Logger.log("SST:"+SST.getName()); } /* web request listeners */ function doGet(e) {return handleResponse(e);} function doPost(e) {return handleResponse(e);} /* handle action request */ function handleResponse(e) { var lock = LockService.getPublicLock(); lock.waitLock(30000); // wait 30 seconds before conceding defeat. try { var action = e.parameter.action; if (action == test) { return getTest(e); }else if (action == addperson) { return manageRecords("addperson",e); //records command,parameter }else if (action == editperson) { return manageRecords("editperson",e); }else if (action == deleteperson) { return manageRecords("deleteperson",e); }else if (action == selectperson) { return manageRecords("selectperson",e); }else if (action == selectpersons) { return manageRecords("selectpersons",e); } } catch (e) {/*if error return this*/return ContentService.createTextOutput(JSON.stringify({"result": "error","error": e})).setMimeType(ContentService.MimeType.JSON);} finally { /*release lock*/ lock.releaseLock();} } /* handle records management */ function manageRecords(command,e){ var output; switch (command){ case "addperson": output=addRecord("persons",e); break; case "editperson": output=editRecord("persons",e); break; case "deleteperson": output=deleteRecord("persons",e);
Subscribe to:
Post Comments (Atom)
|
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.