Cannot call overloaded constructor setValue with parameters ((class)) - Gmail card add on

209 Views Asked by At

I am working with a Gmail add on that is capturing email details and save to our database. However, I'm always getting the error

"Cannot call overloaded constructor setValue with parameters ((class)) because there is more than one matching constructor signature: interface CardService.TextInput setValue(number) interface CardService.TextInput setValue(String) [line: 87, function: createFormSection, file: Cards]"

I tried everything I knew but no luck.

This is my code:

function createFormSection(section, opt_prefills) {

      var dateAssigned = CardService.newTextInput()
      .setFieldName("dateAssigned")
      .setTitle("Date Assigned")
      .setValue(opt_prefills[0]);

      var AssignerName = CardService.newTextInput()
      .setFieldName("AssignerName")
      .setTitle("Assigner Name")
      .setValue(opt_prefills[1]);

       var AssignerEmail = CardService.newTextInput()
      .setFieldName("AssignerEmail")
      .setTitle("Assigner Email")
      .setValue(opt_prefills[2]);

       var ClientName = CardService.newTextInput()
      .setFieldName("ClientName")
      .setTitle("Client Name")
       .setValue(opt_prefills[3]);

       var CandidateOrCaseName = CardService.newTextInput()
      .setFieldName("CandidateOrCaseName")
      .setTitle("Candidate Or Case Name")
       .setValue(opt_prefills[4]);

       var CandidateEmailOnly = CardService.newTextInput()
      .setFieldName("CandidateEmailOnly")
      .setTitle("Candidate Email Only")
       .setValue(opt_prefills[5]);

       var Assignment = CardService.newTextInput()
      .setFieldName("Assignment")
      .setTitle("Assignment")
       .setValue(opt_prefills[6]);

       var Attachment = CardService.newTextInput()
      .setFieldName("Attachment")
      .setTitle("Attachment")
      .setValue(opt_prefills[7]);


   var servicedropdown = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.DROPDOWN)
    .setTitle("Service")
    .setFieldName("servicedropdown")
    .addItem("Pre-Employment Background", "Pre-Employment Background", true)
    .addItem("Peace Officer Lateral", "Peace Officer Lateral", false)


    var positiondropdown = CardService.newSelectionInput()
    .setType(CardService.SelectionInputType.DROPDOWN)
    .setTitle("Position or Type")
    .setFieldName("positiondropdown")
    .addItem("Peace Officer Lateral", "Peace Officer Lateral", true)
    .addItem("Private Investigation", "Private Investigation", false)

  section.addWidget(dateAssigned);
  section.addWidget(AssignerName);
  section.addWidget(AssignerEmail);
  section.addWidget(ClientName);
  section.addWidget(servicedropdown);
  section.addWidget(positiondropdown);
  section.addWidget(CandidateOrCaseName); 
  section.addWidget(CandidateEmailOnly);
  section.addWidget(Assignment);
  section.addWidget(Attachment);    

  return section;
}

function submitForm(e) {

 var res = e['formInput'];

  var receivedOn = res['dateAssigned'];
  var status = 'Active';
  var subjectName = res['CandidateOrCaseName'];
  var subjectEmail = res['CandidateEmailOnly'];
  var agencyName = res['ClientName'];
  var serviceName = res['servicedropdown'];
  var typeName = res['positiondropdown'];
  var assignerName = res['AssignerName'];
  var assignerEmail = res['AssignerEmail'];
  var assignment = res['Assignment'];
  var attachment = res['Attachment'];

  var data = ['dateAssigned','CandidateOrCaseName','CandidateEmailOnly','ClientName', 'AssignerName','AssignerEmail','Assignment','Attachment']

var userEmail = Session.getActiveUser().getEmail();
var username = userEmail.substring(0, userEmail.indexOf("@"));

  try {
    data.forEach(function(fieldName) {
      if (!res[fieldName]) {
        throw 'Please complete required fields';
      }
    });
     var date = new Date();
  var currentDate = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear();


  var driveId = "SampleDriveID";  //createDrive(subjectName,typeName,serviceName,agencyName);
  var code = "SampleCode";  //createCode(agencyName, subjectName, typeName, date);

  var connectionName = 'xxxxx';
  var user = 'xxxxx';
  var userPwd = 'xxxxx';
  var db = 'xxxxx';
  var dbUrl = 'jdbc:google:mysql://' + connectionName + '/' + db;
  var conn = Jdbc.getCloudSqlConnection(dbUrl, user, userPwd);

  //var conn = getConnection();
  var stmt = conn.prepareStatement("INSERT INTO Subject "+
                                   " (SubjectName, AddedBy, AddedOn, UpdatedBy, UpdatedOn, AssignerName, AssignerEmail, AssignedOn, SubjectDetails, SubjectLink, SubjectStatus, SubjectDriveId, SubjectCode, SubjectService, SubjectType, SubjectAgency, SubjectEmail) VALUES " + 
                                   " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");

  stmt.setString(1, subjectName);
  stmt.setString(2, userEmail);
  stmt.setTimestamp(3, Jdbc.parseTimestamp(Utilities.formatDate(new Date(currentDate), Session.getScriptTimeZone(), 'yyyy-MM-dd HH:mm:ss')));
  stmt.setString(4, userEmail);
  stmt.setTimestamp(5, Jdbc.parseTimestamp(Utilities.formatDate(new Date(currentDate), Session.getScriptTimeZone(), 'yyyy-MM-dd HH:mm:ss')));
  stmt.setString(6, assignerName);
  stmt.setString(7, assignerEmail);
  stmt.setTimestamp(8, Jdbc.parseTimestamp(Utilities.formatDate(new Date(receivedOn), Session.getScriptTimeZone(), 'yyyy-MM-dd HH:mm:ss')));
  stmt.setString(9, assignment);
  stmt.setString(10, attachment);
  stmt.setString(11, status);
  stmt.setString(12, driveId);
  stmt.setString(13, code);
  stmt.setString(14, serviceName);
  stmt.setString(15, typeName);
  stmt.setString(16, agencyName);
  stmt.setString(17, subjectEmail);

  stmt.executeUpdate();

    stmt.close();
    conn.close();
var message = "Record created for " + subjectName + ' by ' + userEmail;
    return getEmailDetails(null, message).build();
  }
  catch (err) {
return getEmailDetails(objToArray(res, data), 'Error: ' + err.message).build();
    }
  }

function objToArray(obj, keys) {
  return keys.map(function(key) {
    return obj[key];
  });
}

function clearForm(e) {
  return getEmailDetails(null, e['parameters']['Status']).build();
}

My question is, how to get the name of the fields and values of my gmail addon correctly? Hopefully someone can help me. Thanks!

0

There are 0 best solutions below