Advertisement
Kool_Cool

googleScript

Jan 1st, 2025
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const sheetName = 'htmlRes';
  2. const scriptProp = PropertiesService.getScriptProperties();
  3.  
  4. function intialSetup() {
  5.   const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  6.   scriptProp.setProperty('key', activeSpreadsheet.getId());
  7. }
  8.  
  9. function doPost(e) {
  10.   const lock = LockService.getScriptLock();
  11.   lock.tryLock(10000);
  12.  
  13.   try {
  14.     Logger.log('Received POST request with parameters: ' + JSON.stringify(e.parameter));
  15.  
  16.     const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'));
  17.     Logger.log('Spreadsheet opened successfully: ' + scriptProp.getProperty('key'));
  18.  
  19.     const sheet = doc.getSheetByName(sheetName);
  20.     if (!sheet) {
  21.       throw new Error('Sheet not found: ' + sheetName);
  22.     }
  23.     Logger.log('Sheet found: ' + sheetName);
  24.  
  25.     const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  26.     Logger.log('Headers retrieved: ' + JSON.stringify(headers));
  27.  
  28.     const nextRow = sheet.getLastRow() + 1;
  29.     Logger.log('Next row to write: ' + nextRow);
  30.  
  31.     const newRow = headers.map(function(header) {
  32.       return header === 'Date' ? new Date() : e.parameter[header];
  33.     });
  34.     Logger.log('New row data: ' + JSON.stringify(newRow));
  35.  
  36.     sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]);
  37.     Logger.log('Data written to sheet successfully.');
  38.  
  39.     // Send acknowledgment email to the user who signed up
  40.     const userEmail = e.parameter.email; // Get the email address from the form data
  41.     const subject = 'Hey! Welcome to X-Fit! 🎉';
  42.    
  43.     // Customize the email body
  44.     const message =  e.parameter.email_body;
  45.     // const message = `
  46.     //   Hi ${e.parameter.name}!,
  47.  
  48.     //   Thank you for joining the X-Fit Community!
  49.  
  50.     //   Our story: I once drove 30 minutes in Bengaluru traffic to check out this "amazing gym" I found online. Guess what? It didn't even exist anymore! 😅
  51.  
  52.     //   That's why we started X-Fit. We do all the gym-hunting work for you. Don't worry.
  53.  
  54.     //   We have a standardized checklist created from feedback from users like yourself. Every gym listed on our platform is personally checked by X-Fit. No more wasted trips! ✅
  55.  
  56.     //   We're adding more great gyms every week! Meanwhile, you'll get updates about fitness tips, awesome gyms near you, and special offers (all verified, promise!).
  57.  
  58.     //   Thanks again for joining us!
  59.  
  60.     //   To your health and fitness,
  61.      
  62.     //   Aasim Hussain  
  63.     //   CEO and Co-Founder, X-Fit
  64.  
  65.     //   http://www.xfitclub.in/
  66.  
  67.     //   P.S. Need help finding a gym nearby? Reply and let us know where – we'll do the legwork for you! 🔍
  68.     // `;
  69.  
  70.  
  71.     Logger.log('Attempting to send email to: ' + userEmail);
  72.  
  73.     if (userEmail) {
  74.       MailApp.sendEmail( {
  75.          to: userEmail,
  76.          subject:subject,
  77.          htmlBody : message });
  78.       Logger.log('Acknowledgment email sent successfully.');
  79.     } else {
  80.       Logger.log('No email address provided.');
  81.     }
  82.  
  83.     return ContentService
  84.       .createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
  85.       .setMimeType(ContentService.MimeType.JSON);
  86.   } catch (e) {
  87.     Logger.log('Error: ' + e.toString());
  88.     return ContentService
  89.       .createTextOutput(JSON.stringify({ 'result': 'error', 'error': e.toString() }))
  90.       .setMimeType(ContentService.MimeType.JSON);
  91.   } finally {
  92.     lock.releaseLock();
  93.     Logger.log('Lock released.');
  94.   }
  95. }
  96.  
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement