Skip to content

Instantly share code, notes, and snippets.

<form id="my_form">
<p>
<label>Name:</label>
<input name="name" type="text" value=""/>
</p>
<p>
<label>Email:</label>
<input name="email" type="text" value=""/>
</p>
<p>
function callWithScriptLock(callback, arg1, arg2) {
var lock = LockService.getScriptLock();
lock.waitLock(30000);
try {
return callback(arg1, arg2);
} finally {
lock.releaseLock();
}
}
function createNewRowAndWriteToSheet(parameters) {
var sheet = getSheet();
var headers = getHeaders(sheet);
var newRow = createRow(headers, parameters);
callWithScriptLock(writeRowToSheet, sheet, newRow);
return newRow;
}
function getSheet() {
var spreadsheet = SpreadsheetApp.openById(SCRIPT_PROPERTIES.getProperty("spreadsheetId"));
function doPost(e) {
try {
var newRow = createNewRowAndWriteToSheet(e.parameter);
return JsonFormattedSuccess(newRow.toString());
} catch(error) {
return JsonFormattedError(error)
}
}
function JsonFormattedSuccess(success_message) {
var SCRIPT_PROPERTIES = PropertiesService.getScriptProperties();
function registerSpreadsheetWithScript() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
SCRIPT_PROPERTIES.setProperty("spreadsheetId", spreadsheet.getId());
SCRIPT_PROPERTIES.setProperty("sheetName", sheet.getName());
}