Skip to main content

Online betting app

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

Popular posts from this blog

Ecommerce website tool for product

E-Commerce Tool for Blogger 🛒 E-Commerce Blogger Tool 🌙 Product Information Product Name Brand Description Product Images (Up to 5) + Add Image Specifications ...

Pro Reminder Tool

ProTask Reminder - Premium Task Management ProTask Reminder 🌙 Dark Mode Create New Reminder Task Title* Description Date & Time* Repeat No Repeat Daily Weekly Notification Methods ...