Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var arrayLocations = [];
- arrayLocations["Name"] = 0;
- arrayLocations["Link"] = 1
- arrayLocations["Result"] = 2
- var SCRIPT_PROP = PropertiesService.getScriptProperties();
- function itemFromCell(input, type)
- {
- var resultString = input;
- var startPosition = resultString.indexOf("[");
- var endPosition = resultString.indexOf("]");
- resultString = resultString.substring(startPosition + 1, endPosition);
- var resultArray = resultString.split(",");
- resultString = resultArray[arrayLocations[type]];
- startPosition = resultString.indexOf("\"");
- endPosition = resultString.indexOf("\"", startPosition + 1);
- return resultString.substring(startPosition + 1, endPosition);
- }
- function updateLog(key)
- {
- try
- {
- var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
- var sheet = doc.getSheetByName("Log");
- var data = sheet.getDataRange().getValues();
- var nextRow = sheet.getLastRow()+1;
- var resultString = '=itemFromCell(RaidLog!$B' + nextRow + ', "Result")';
- var nameString = '=itemFromCell(RaidLog!$B' + nextRow + ', "Name")';
- var linkString = '=itemFromCell(RaidLog!$B' + nextRow + ', "Link")';
- var keyString = key + '';
- var row = [resultString, nameString, linkString, keyString];
- sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
- }
- catch(e)
- {
- return ContentService
- .createTextOutput(JSON.stringify({"result":"error", "error": e, "test": "Test", "sheet": sheetNom}))
- .setMimeType(ContentService.MimeType.JSON);
- }
- }
- function doGet(e){
- try {
- var key = e.parameter["key"]
- var sheetName = e.parameter["sheet"]
- var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
- var sheet = doc.getSheetByName(e.parameter["sheet"]);
- var data = sheet.getDataRange().getValues();
- if (key == null)
- {
- var values = {}
- for(var i = 1; i < data.length; i++)
- {
- values[data[i][0]] = data[i][1];
- }
- if (values)
- {
- return ContentService
- .createTextOutput(JSON.stringify({"result":"success:", "values": values}))
- .setMimeType(ContentService.MimeType.JSON);
- }
- else
- {
- return ContentService
- .createTextOutput(JSON.stringify({"result":"error", "error":e}))
- .setMimeType(ContentService.MimeType.JSON);
- }
- }
- var value
- for (var i = 1; i < data.length; i++) {
- if (data[i][0] == key) {
- value = data[i][1];
- }
- }
- if (value){
- return ContentService
- .createTextOutput(JSON.stringify({"result":"success", "value": value}))
- .setMimeType(ContentService.MimeType.JSON);
- } else {
- return ContentService
- .createTextOutput(JSON.stringify({"result":"error", "error": "Key not found"}))
- .setMimeType(ContentService.MimeType.JSON);
- }
- } catch(e){
- return ContentService
- .createTextOutput(JSON.stringify({"result":"error", "error": "Database does not exist"}))
- .setMimeType(ContentService.MimeType.JSON);
- }
- }
- function doPost(e){
- var sheetNom = e.parameter["sheet"];
- var lock = LockService.getPublicLock();
- lock.waitLock(30000);
- try {
- var key = e.parameter["key"]
- var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
- var sheet = doc.getSheetByName(e.parameter["sheet"]);
- var data = sheet.getDataRange().getValues();
- var headRow = e.parameter.header_row || 1;
- var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
- var nextRow = sheet.getLastRow()+1;
- var row = [];
- for (var i = 1; i < data.length; i++) {
- if (data[i][0] == e.parameter["key"]) {
- nextRow = i + 1;
- }
- }
- for (i in headers){
- row.push(e.parameter[headers[i]]);
- }
- sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
- updateLog(key);
- return ContentService
- .createTextOutput(JSON.stringify({"result":"success", "row": nextRow}))
- .setMimeType(ContentService.MimeType.JSON);
- } catch(e){
- return ContentService
- .createTextOutput(JSON.stringify({"result":"error", "error": e, "test": "Test", "sheet": sheetNom}))
- .setMimeType(ContentService.MimeType.JSON);
- } finally {
- lock.releaseLock();
- }
- }
- function setup() {
- var doc = SpreadsheetApp.getActiveSpreadsheet();
- SCRIPT_PROP.setProperty("key", doc.getId());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement