Source code for parsons.ngpvan.contact_notes

"""NGPVAN Contact Notes Endpoints"""

import logging

from parsons.etl.table import Table

logger = logging.getLogger(__name__)


[docs] class ContactNotes(object): def __init__(self, van_connection): self.connection = van_connection
[docs] def get_contact_notes(self, van_id): """ Get custom fields. `Args:` van_id : str VAN ID for the person to get notes for. `Returns:` Parsons Table See :ref:`parsons-table` for output options. """ tbl = Table(self.connection.get_request(f"people/{van_id}/notes")) logger.info(f"Found {tbl.num_rows} custom fields.") return tbl
[docs] def create_contact_note( self, van_id, text, is_view_restricted, note_category_id=None, contact_type_id=None, input_type_id=None, date_canvassed=None, result_code_id=None, ): """ Create a contact note `Args:` van_id: str VAN ID for the person this note will be applied to. text: str The content of the note. is_view_restricted: bool Set to true if the note should be restricted only to certain users within the current context; set to false if the note may be viewed by any user in the current context. note_category_id: int Optional; if set, the note category for this note. contact_type_id: str Defaults to 82 if no value is set. This value results in a null contact type in EA. input_type_id: str Defaults to 11 if no value is set. If the value is 11, the input type in EA will be listed as "API" date_canvassed: date Defaults to current date if no value is set. Dates should be formatted in ISO8601 standard. result_code_id: str Defaults to 205 if no value is set. This value results in a "Contacted" result in EA. `Returns:` int The note ID. """ note = {"text": text, "isViewRestricted": is_view_restricted} if note_category_id is not None: note["category"] = {"noteCategoryId": note_category_id} contact_history = {} if contact_type_id is not None: contact_history["contact_type_id"] = str(contact_type_id) if input_type_id is not None: contact_history["input_type_id"] = str(input_type_id) if date_canvassed is not None: contact_history["dateCanvassed"] = date_canvassed if result_code_id is not None: contact_history["result_code_id"] = str(result_code_id) if contact_history: note["contactHistory"] = contact_history r = self.connection.post_request(f"people/{van_id}/notes", json=note) logger.info(f"Contact note {r} created.") return r