Sunday, March 25, 2018

1003 Handle REST Service

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);

visit link download

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.