def remove_from_oncalls()

in libs/pagerduty/__init__.py [0:0]


  def remove_from_oncalls(self, user_email):
    """
    Removes a user from oncalls, and then deletes the user.
    :param email: user email
    :return: bool
    """
    deleted = False
    user_id = self.find_user_id(user_email=user_email)
    if user_id is not None:
      try:
        userdel = json.loads(self.delete_user(user_id=user_id))
        if "error" in userdel:
          for conflict in userdel["error"]["conflicts"]:
            if conflict["type"] == "schedule":
              self.remove_user_from_schedule(schedule_id=conflict["id"], user_id=user_id)
            elif conflict["type"] == "escalation_policy":
              self.remove_user_from_escalation_policy(policy_id=conflict["id"],
                                                      user_id=user_id,
                                                      delete_empty=True)
          userdel = self.delete_user(user_id=user_id)
          if userdel == "":
            deleted = True
      except ValueError:
        deleted = True
    else:
      deleted = True

    return deleted