-
Notifications
You must be signed in to change notification settings - Fork 0
/
code.gs
60 lines (52 loc) · 1.64 KB
/
code.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
* @file Manages inventory notifications and updates in Google Sheets.
*/
const SHEET_ID = "1Z8hHlW4X9ea_-lDscja07jcINn7cToxFazvDixZCKvs";
const INVENTORY_SHEET_NAME = "Inventory";
/**
* Handles GET requests and returns inventory data in JSON format.
* @param {Object} e - Event object from the GET request.
* @return {TextOutput} - JSON-formatted inventory data.
*/
function doGet(e) {
const inventorySheet =
SpreadsheetApp.openById(SHEET_ID).getSheetByName(INVENTORY_SHEET_NAME);
const data = inventorySheet.getDataRange().getValues();
return ContentService.createTextOutput(JSON.stringify(data)).setMimeType(
ContentService.MimeType.JSON
);
}
/**
* Handles POST requests to update inventory data.
* @param {Object} request - Request object containing POST data.
* @return {HtmlOutput} - Response message after processing the POST request.
*/
function doPost(request) {
const { parameter, postData: { contents, type } = {} } = request;
let jsonData = null;
if (type === "application/json" && contents) {
jsonData = JSON.parse(contents);
processPostResponse(jsonData.id, jsonData.quantity);
}
return HtmlService.createHtmlOutput(
`Log: ${jsonData ? JSON.stringify(jsonData) : "No data received"}`
);
}
/**
* Adds a custom menu to the Google Sheets UI.
*/
function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu("Custom Actions")
.addItem("Setup", "getShopInventory")
.addToUi();
}
/**
* Handles edit events in the spreadsheet.
* @param {Object} e - Event object from the edit action.
*/
function onEdit(e) {
const range = e.range;
setRowColor(range);
detectAlertClick(range);
}