Advertisement
Guest User

Database Macro

a guest
Sep 1st, 2019
3,449
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var SCRIPT_PROP = PropertiesService.getScriptProperties();
  2.  
  3. function doGet(e) {
  4.     try {
  5.         var key = e.parameter["key"]
  6.         var sheetName = e.parameter["sheet"]
  7.         var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  8.         var sheet = doc.getSheetByName(e.parameter["sheet"]);
  9.         var data = sheet.getDataRange().getValues();
  10.         var value
  11.         for (var i = 1; i < data.length; i++) {
  12.             if (data[i][0] == key) {
  13.                 value = data[i][1];
  14.             }
  15.         }
  16.         if (value) {
  17.             return ContentService
  18.                 .createTextOutput(JSON.stringify({
  19.                     "result": "success",
  20.                     "value": value
  21.                 }))
  22.                 .setMimeType(ContentService.MimeType.JSON);
  23.         } else {
  24.             return ContentService
  25.                 .createTextOutput(JSON.stringify({
  26.                     "result": "error",
  27.                     "error": "Key not found"
  28.                 }))
  29.                 .setMimeType(ContentService.MimeType.JSON);
  30.         }
  31.     } catch (e) {
  32.         return ContentService
  33.             .createTextOutput(JSON.stringify({
  34.                 "result": "error",
  35.                 "error": "Database does not exist"
  36.             }))
  37.             .setMimeType(ContentService.MimeType.JSON);
  38.     }
  39. }
  40.  
  41. function doPost(e) {
  42.     var sheetNom = e.parameter["sheet"];
  43.     var lock = LockService.getPublicLock();
  44.     lock.waitLock(30000);
  45.     try {
  46.         var key = e.parameter["key"]
  47.         var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  48.         var sheet = doc.getSheetByName(e.parameter["sheet"]);
  49.         var data = sheet.getDataRange().getValues();
  50.         var headRow = e.parameter.header_row || 1;
  51.         var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  52.         var nextRow = sheet.getLastRow() + 1;
  53.         var row = [];
  54.         for (var i = 1; i < data.length; i++) {
  55.             if (data[i][0] == e.parameter["key"]) {
  56.                 nextRow = i + 1;
  57.             }
  58.         }
  59.         for (i in headers) {
  60.             row.push(e.parameter[headers[i]]);
  61.         }
  62.         sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
  63.         return ContentService
  64.             .createTextOutput(JSON.stringify({
  65.                 "result": "success",
  66.                 "row": nextRow
  67.             }))
  68.             .setMimeType(ContentService.MimeType.JSON);
  69.     } catch (e) {
  70.         return ContentService
  71.             .createTextOutput(JSON.stringify({
  72.                 "result": "error",
  73.                 "error": e,
  74.                 "test": "Test",
  75.                 "sheet": sheetNom
  76.             }))
  77.             .setMimeType(ContentService.MimeType.JSON);
  78.     } finally {
  79.         lock.releaseLock();
  80.     }
  81. }
  82.  
  83. function setup() {
  84.     var doc = SpreadsheetApp.getActiveSpreadsheet();
  85.     SCRIPT_PROP.setProperty("key", doc.getId());
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement