function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
if (data.length <= 1) {
return ContentService.createTextOutput(JSON.stringify({ status: "success", data: [] }))
.setMimeType(ContentService.MimeType.JSON);
}
var headers = data[0];
var result = [];
for (var i = 1; i < data.length; i++) {
var obj = {};
for (var j = 0; j < headers.length; j++) {
var headerName = headers[j] ? headers[j].toString().trim() : ("col_" + j);
obj[headerName] = data[i][j];
}
result.push(obj);
}
return ContentService.createTextOutput(JSON.stringify({ status: "success", data: result }))
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
try {
var contents = JSON.parse(e.postData.contents);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if (contents.action === "delete") {
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
if (data[i][0] == contents.no) {
sheet.deleteRow(i + 1);
break;
}
}
return ContentService.createTextOutput(JSON.stringify({ status: "success", message: "Deleted" }))
.setMimeType(ContentService.MimeType.JSON);
}
var headers = ["no", "gedung", "lantai", "kodeRuangan", "namaRuangan", "kategori", "namaBarang", "merk", "jumlah", "kualitas", "kondisi", "tahun", "biaya", "keterangan"];
if (sheet.getLastRow() === 0) {
sheet.appendRow(headers);
}
var data = sheet.getDataRange().getValues();
var rowIndex = -1;
for (var i = 1; i < data.length; i++) {
if (data[i][0] == contents.no) {
rowIndex = i + 1;
break;
}
}
var rowData = headers.map(function(key) { return contents[key] !== undefined ? contents[key] : ""; });
if (rowIndex > 0) {
sheet.getRange(rowIndex, 1, 1, rowData.length).setValues([rowData]);
} else {
sheet.appendRow(rowData);
}
return ContentService.createTextOutput(JSON.stringify({ status: "success", message: "Saved" }))
.setMimeType(ContentService.MimeType.JSON);
} catch (err) {
return ContentService.createTextOutput(JSON.stringify({ status: "error", message: err.message }))
.setMimeType(ContentService.MimeType.JSON);
}
}