function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
// Validate the data
if (!data.name || !data.contact || !data.number || data.number < 1 || data.number > 100) {
return ContentService.createTextOutput(JSON.stringify({
success: false,
message: "Invalid data"
})).setMimeType(ContentService.MimeType.JSON);
}
// Get the active spreadsheet
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spreadsheet.getSheetByName("Bets") || spreadsheet.insertSheet("Bets");
// Set headers if this is a new sheet
if (sheet.getLastRow() === 0) {
sheet.appendRow(["Timestamp", "Name", "Contact", "Number", "Payment Confirmed", "Ticket Price"]);
}
// Add the new bet
sheet.appendRow([
data.timestamp || new Date().toISOString(),
data.name,
data.contact,
data.number,
data.paymentConfirmed ? "Yes" : "No",
data.ticketPrice || 50
]);
return ContentService.createTextOutput(JSON.stringify({
success: true,
message: "Bet recorded successfully"
})).setMimeType(ContentService.MimeType.JSON);
} catch (error) {
return ContentService.createTextOutput(JSON.stringify({
success: false,
message: error.toString()
})).setMimeType(ContentService.MimeType.JSON);
}
}
function doGet(e) {
if (e.parameter.action === "getStats") {
try {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getSheetByName("Bets");
if (!sheet || sheet.getLastRow() <= 1) {
return ContentService.createTextOutput(JSON.stringify({
success: true,
totalBets: 0,
totalAmount: 0,
recentNumbers: []
})).setMimeType(ContentService.MimeType.JSON);
}
// Get all data
const data = sheet.getRange(2, 1, sheet.getLastRow() - 1, 6).getValues();
// Filter today's bets
const today = new Date().toISOString().split('T')[0];
const todaysBets = data.filter(row => {
const rowDate = new Date(row[0]).toISOString().split('T')[0];
return rowDate === today;
});
// Calculate stats
const totalBets = todaysBets.length;
const totalAmount = todaysBets.reduce((sum, row) => sum + (row[5] || 50), 0);
// Get recent numbers (last 5)
const recentNumbers = data
.slice(-5)
.map(row => row[3])
.reverse();
return ContentService.createTextOutput(JSON.stringify({
success: true,
totalBets: totalBets,
totalAmount: totalAmount,
recentNumbers: recentNumbers
})).setMimeType(ContentService.MimeType.JSON);
} catch (error) {
return ContentService.createTextOutput(JSON.stringify({
success: false,
message: error.toString()
})).setMimeType(ContentService.MimeType.JSON);
}
}
return ContentService.createTextOutput(JSON.stringify({
success: false,
message: "Invalid action"
})).setMimeType(ContentService.MimeType.JSON);
}
Comments
Post a Comment