Source code for highton.models.person

from highton import (
    fields,
    call_mixins,
)
from highton.highton_constants import HightonConstants
from highton.models.contact import Contact


[docs]class Person( Contact, call_mixins.ListCallMixin, call_mixins.CreateCallMixin, call_mixins.DetailCallMixin, call_mixins.UpdateCallMixin, call_mixins.DeleteCallMixin, call_mixins.ListNoteCallMixin, call_mixins.ListEmailCallMixin, call_mixins.ListTagCallMixin, call_mixins.ListTaskCallMixin, call_mixins.CreateTagCallMixin, call_mixins.CreateNoteCallMixin, call_mixins.DeleteTagCallMixin, call_mixins.SearchCallMixin, ): """ :ivar id: fields.IntegerField(name=HightonConstants.ID) :ivar company_id: fields.IntegerField(name=HightonConstants.COMPANY_ID) :ivar company_name: fields.StringField(name=HightonConstants.COMPANY_NAME) :ivar first_name: fields.StringField(name=HightonConstants.FIRST_NAME) :ivar last_name: fields.StringField(name=HightonConstants.LAST_NAME) :ivar title: fields.StringField(name=HightonConstants.TITLE) :ivar author_id: fields.IntegerField(name=HightonConstants.AUTHOR_ID) :ivar background: fields.StringField(name=HightonConstants.BACKGROUND) :ivar created_at: fields.DatetimeField(name=HightonConstants.CREATED_AT) :ivar group_id: fields.IntegerField(name=HightonConstants.GROUP_ID) :ivar owner_id: fields.IntegerField(name=HightonConstants.OWNER_ID) :ivar updated_at: fields.DatetimeField(name=HightonConstants.UPDATED_AT) :ivar visible_to: fields.StringField(name=HightonConstants.VISIBLE_TO) :ivar linkedin_url: fields.StringField(name=HightonConstants.LINKEDIN_URL) :ivar avatar_url: fields.StringField(name=HightonConstants.AVATAR_URL) :ivar tags: fields.ListField(name=HightonConstants.TAGS, init_class=Tag) :ivar contact_data: fields.ObjectField(name=HightonConstants.CONTACT_DATA, init_class=ContactData) :ivar subject_datas: fields.ListField(name=HightonConstants.SUBJECT_DATAS, init_class=SubjectData) """ ENDPOINT = HightonConstants.PEOPLE TAG_NAME = HightonConstants.PERSON OFFSET = 500 def __init__(self, **kwargs): self.company_id = fields.IntegerField(name=HightonConstants.COMPANY_ID, required=True) self.company_name = fields.StringField(name=HightonConstants.COMPANY_NAME, required=True) self.first_name = fields.StringField(name=HightonConstants.FIRST_NAME, required=True) self.last_name = fields.StringField(name=HightonConstants.LAST_NAME, required=True) self.title = fields.StringField(name=HightonConstants.TITLE, required=True) super().__init__(**kwargs)
[docs] @classmethod def list(cls, page=0, since=None, tag_id=None, title=None): """ :param page: page starting by 0 :type page: int :param since: :type since: datetime.datetime :param tag_id: id of a tag :type tag_id: int :param title: :type title: str :return: list of person objects :rtype: list """ params = {} if page: params['n'] = int(page) * cls.OFFSET if since: params['since'] = since.strftime(cls.COLLECTION_DATETIME) if tag_id: params['tag_id'] = str(tag_id) if title: params['title'] = title return super().list(params)