1
votes

Hello I need to update a created contact and remove from all earlier groups assigned. In this example a contact is created and it is later moved to Carpenter and now the actial question begins

How do I move a created contact to a different group. That is I need the contact to be moved to BLACKSMITHS group if that doesnt exist create BLACKSMITHS and assign BLACKSMITHS and remove from earlier assigned CARPENTERS

function doGet(e) {
  // 1. CREATE CONTACT:
  var contactResource = {
    "names": [{
      "displayNameLastFirst": "Smith Jefferson Jones",
      "familyName": "Jones",
    }],
    /* "phoneNumbers": [{
      'value': "+12345679962"
    }],
    "emailAddresses": [{
      'value': ' '
    }]*/
  }
  var contactResourceName = People.People.createContact(contactResource)["resourceName"];
  // 2. CHECK IF GROUP EXISTS:
  var groupName = "CARPENTERS";
  var groups = People.ContactGroups.list()["contactGroups"];
  var group = groups.find(group => group["name"] === groupName);
  // 3. CREATE GROUP IF DOESN'T EXIST:
  if (!group) {
    var groupResource = {
      contactGroup: {
        name: groupName
      }
    }
    group = People.ContactGroups.create(groupResource);
  }
  var groupResourceName = group["resourceName"];
  // 4. ADD CONTACT TO GROUP:
  var membersResource = {
    "resourceNamesToAdd": [
      contactResourceName
    ]
  }

  //HOW DO I MODIFY A CONTACT so that its must be removed from "CARPENTERS" group and ADDED TO "BLACKSMITHS" group
 
  
  //??????????????????


  
  People.ContactGroups.Members.modify(membersResource, groupResourceName);  
  return ContentService.createTextOutput("Success");
}


 
1

1 Answers

1
votes

You just need to:

  1. Add the contact to the new group (BLACKSMITHS), the way you did it in the code you shared.
  2. Remove the contact from the previous group (CARPENTERS), using resourceNamesToRemove at contactGroups.members.modify.

Check the example below.

Code snippet:

// 1. Create Blacksmiths group if doesn't exist, add contact to group:
var groupNameToAdd = "BLACKSMITHS";
var groupToAdd = groups.find(group => group["name"] === groupNameToAdd);
if (!groupToAdd) { // Create group if doesn't exist
  var groupToAddResource = {
    contactGroup: {
      name: groupNameToAdd
    }
  }
  groupToAdd = People.ContactGroups.create(groupToAddResource);
}
var groupToAddResourceName = groupToAdd["resourceName"];
var membersToAddResource = {
  "resourceNamesToAdd": [
    contactResourceName
  ]
}
People.ContactGroups.Members.modify(membersToAddResource, groupToAddResourceName);
// 2. Remove contact from Carpenters:
var groupNameToRemove = "CARPENTERS";
var groupToRemove = groups.find(group => group["name"] === groupNameToRemove);
if (groupToRemove) { // Check that group exists
  var groupToRemoveResourceName = groupToRemove["resourceName"];
  var membersToRemoveResource = {
    "resourceNamesToRemove": [
      contactResourceName
    ]
  }
  People.ContactGroups.Members.modify(membersToRemoveResource, groupToRemoveResourceName);
}