Caixa de Emenda

var data = Utilities.base64Decode(e.parameters.data);

var blob = Utilities.newBlob(data, e.parameters.mimetype, e.parameters.filename);

DriveApp.getFolderById('<IDDIRFOTOS>').createFile(blob);

return ContentService.createTextOutput("Envio com sucesso");

}

function doGet(e) {

  var sheet = getOrCreateSheet("Dados APP");

  var chaveDados = e.parameter.chaveDados;

  var consultaDados = e.parameter.consultaDados;

  var removeDado = e.parameter.removeDado;

  var var1 = e.parameter.var1;

  var var2 = e.parameter.var2;

  var var3 = e.parameter.var3;

  var var4 = e.parameter.var4;

  var var5 = e.parameter.var5;

  var var6 = e.parameter.var6;

  var var7 = e.parameter.var7;

  var var8 = e.parameter.var8;

  var var9 = e.parameter.var9;

  var var10 = e.parameter.var10;

  if (removeDado === "true") {

    return apagarDado(sheet, chaveDados, var1);

  }

  if (chaveDados === "TodosDados") {

    return buscarTodosDados(sheet);

  }

  if (consultaDados) {

    var linha = buscarChaveDados(sheet, chaveDados);

    if (linha > 0) {

      var linhaValores = sheet.getRange(linha, 1, 1, 11).getValues()[0];

      var csv = linhaValores.join(",");

      return ContentService.createTextOutput(csv).setMimeType(ContentService.MimeType.TEXT);

    } else {

      return ContentService.createTextOutput("Chave não encontrada").setMimeType(ContentService.MimeType.TEXT);

    }

  }

  if (!removeDado) {

    var rowToUpdate = buscarChaveDados(sheet, chaveDados);

    if (rowToUpdate > 0) {

      sheet.getRange(rowToUpdate, 1, 1, 11).setValues([[chaveDados, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10]]);

      return ContentService.createTextOutput("Dados atualizados na linha " + rowToUpdate);

    } else {

      sheet.appendRow([chaveDados, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10]);

      return ContentService.createTextOutput("Nova linha adicionada com sucesso");

    }

  }

  return ContentService.createTextOutput("Operação inválida").setMimeType(ContentService.MimeType.TEXT);

}

function apagarDado(sheet, chaveDados, var1) {

  if (chaveDados === "TodosDados") {

    return ContentService.createTextOutput("Operação inválida: Não é permitido apagar TodosDados").setMimeType(ContentService.MimeType.TEXT);

  }

  var dataRange = sheet.getDataRange();

  var data = dataRange.getValues();

  for (var i = 0; i < data.length; i++) {

    if (data[i][0].toString().trim() === chaveDados.toString().trim() && data[i][1].toString().trim() === var1.toString().trim()) {

      sheet.deleteRow(i + 1); // Apaga a linha encontrada

      return ContentService.createTextOutput("Linha com chaveDados '" + chaveDados + "' e var1 '" + var1 + "' apagada com sucesso").setMimeType(ContentService.MimeType.TEXT);

    }

  }

  return ContentService.createTextOutput("Chave não encontrada ou var1 não corresponde").setMimeType(ContentService.MimeType.TEXT);

}

function buscarTodosDados(sheet) {

  var dataRange = sheet.getDataRange();

  var data = dataRange.getValues();

  data.shift();

  var csv = data.map(function(row) {

    return row.join(",");

  }).join("\n");

  return ContentService.createTextOutput(csv).setMimeType(ContentService.MimeType.TEXT);

}

function buscarChaveDados(sheet, chaveDados) {

  var dataRange = sheet.getDataRange();

  var data = dataRange.getValues();

  for (var i = 0; i < data.length; i++) {

    if (data[i][0].toString().trim() === chaveDados.toString().trim()) {

      return i + 1;

    }

  }

  return -1;

}

function getOrCreateSheet(sheetName) {

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  var sheet = spreadsheet.getSheetByName(sheetName);

  if (!sheet) {

    sheet = spreadsheet.insertSheet(sheetName);

    sheet.appendRow(["chaveDados", "var1", "var2", "var3", "var4", "var5", "var6", "var7", "var8", "var9", "var10"]);

  }

  return sheet;

}