IAmMoonie

Debug Ver.1

Aug 23rd, 2024
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 3.11 KB | Source Code | 0 0
  1. /**
  2.  * Handles form submission and processes responses.
  3.  *
  4.  * @param {GoogleAppsScript.Events.Event} e - The form submission event.
  5.  */
  6. const onFormSubmit = ({ response }) => {
  7.   console.info("Form submission event received.");
  8.  
  9.   const itemResponses = response.getItemResponses();
  10.   console.log("Total number of responses received:", itemResponses.length);
  11.  
  12.   // Helper function to handle undefined or null responses
  13.   const getResponseOrDefault = (response, defaultValue = "--BLANK--") => {
  14.     console.debug("Checking response:", response);
  15.     return response !== undefined && response !== null ? response : defaultValue;
  16.   };
  17.  
  18.   // Handle short line inputs, ensuring correct indexing
  19.   const email = {
  20.     address: getResponseOrDefault(itemResponses[0]?.getResponse()),
  21.     fullname: getResponseOrDefault(itemResponses[1]?.getResponse()),
  22.     ou: getResponseOrDefault(itemResponses[2]?.getResponse())
  23.   };
  24.   console.log("Email details after processing:", email);
  25.  
  26.   // Handle checkboxes with careful validation
  27.   const checkboxResponse = itemResponses[3]?.getResponse();
  28.   console.debug("Checkbox response received:", checkboxResponse);
  29.  
  30.   email.groups = Array.isArray(checkboxResponse) && checkboxResponse.length > 0
  31.     ? checkboxResponse
  32.     : ["--BLANK--"];
  33.   console.log("Email groups after processing:", email.groups);
  34.  
  35.   // Handle other variables, ensuring correct indexing
  36.   const ad = {
  37.     dcsite: getResponseOrDefault(itemResponses[4]?.getResponse()),
  38.     account: getResponseOrDefault(itemResponses[5]?.getResponse()),
  39.     fullname: getResponseOrDefault(itemResponses[6]?.getResponse()),
  40.     radiusgroup: getResponseOrDefault(itemResponses[7]?.getResponse())
  41.   };
  42.   console.log("AD details after processing:", ad);
  43.  
  44.   const notificationemail = getResponseOrDefault(itemResponses[8]?.getResponse());
  45.   const bccemail = getResponseOrDefault(itemResponses[9]?.getResponse());
  46.   console.log("Notification Email:", notificationemail);
  47.   console.log("BCC Email:", bccemail);
  48.  
  49.   // Construct payload
  50.   const payload = {
  51.     "email.address": email.address,
  52.     "email.fullname": email.fullname,
  53.     "email.ou": email.ou,
  54.     "email.groups": email.groups,
  55.     "ad.dcsite": ad.dcsite,
  56.     "ad.account": ad.account,
  57.     "ad.fullname": ad.fullname,
  58.     "ad.radiusgroup": ad.radiusgroup,
  59.     notificationemail,
  60.     bccemail
  61.   };
  62.  
  63.   console.info("Constructed payload:", JSON.stringify(payload));
  64.  
  65.   // Send HTTP POST
  66.   const url = "https://HTTPPOSTONAZURELOGICAPP";
  67.   const options = {
  68.     method: "post",
  69.     headers: {
  70.       "Content-Type": "application/json"
  71.     },
  72.     payload: JSON.stringify(payload),
  73.     followRedirects: true,
  74.     muteHttpExceptions: true
  75.   };
  76.  
  77.   console.info("Sending HTTP POST request to:", url);
  78.   try {
  79.     const response = UrlFetchApp.fetch(url, options);
  80.     console.log("HTTP POST request successful.");
  81.  
  82.     const json = response.getContentText();
  83.     console.debug("Response content text:", json);
  84.  
  85.     const data = JSON.parse(json);
  86.     console.info("Parsed response data:", data);
  87.   } catch (error) {
  88.     console.error("Error in HTTP POST:", error);
  89.   }
  90. };
  91.  
Advertisement
Add Comment
Please, Sign In to add comment