Guest User

Database Macro

a guest
Sep 1st, 2019
1,992
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. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×