Пример #1
0
    def fetch_all(self, deleted=False):
        """
        Lazy-loads the set of :class:`Member` objects

        :param deleted: Include deleted members
        :type deleted: :class:`bool`
        :rtype: :class:`dict` of :class:`Member` objects

        Usage::

            >>> from emma.model.account import Account
            >>> acct = Account(1234, "08192a3b4c5d6e7f", "f7e6d5c4b3a29180")
            >>> grp = acct.groups[1024]
            >>> grp.members.fetch_all()
            {200: <Member>, 201: <Member>, ...}
        """
        if not 'member_group_id' in self.group:
            raise ex.NoGroupIdError()

        member = emma.model.member
        path = '/groups/%s/members' % self.group['member_group_id']
        params = {'deleted': True} if deleted else {}
        if not self._dict:
            self._dict = dict(
                (x['member_id'], member.Member(self.group.account, x))
                    for x in self.group.account.adapter.paginated_get(path, params))
        return self._dict
Пример #2
0
    def fetch_all(self):
        """
        Lazy-loads the full set of :class:`Member` objects

        :rtype: :class:`dict` of :class:`Member` objects

        Usage::

            >>> from emma.model.account import Account
            >>> acct = Account(1234, "08192a3b4c5d6e7f", "f7e6d5c4b3a29180")
            >>> srch = acct.searches[1024]
            >>> srch.members.fetch_all()
            {200: <Member>, 201: <Member>, ...}
        """
        if not 'search_id' in self.search:
            raise ex.NoSearchIdError()

        path = '/searches/%s/members' % self.search['search_id']
        if not self._dict:
            member = emma.model.member
            self._dict = dict(
                (x['member_id'], member.Member(self.search.account, x))
                    for x in self.search.account.adapter.paginated_get(path))
        return self._dict
Пример #3
0
    def fetch_all(self):
        """
        Lazy-loads the full set of :class:`Member` objects

        :rtype: :class:`dict` of :class:`Member` objects

        Usage::

            >>> from emma.model.account import Account
            >>> acct = Account(1234, "08192a3b4c5d6e7f", "f7e6d5c4b3a29180")
            >>> mlng = acct.mailings[123]
            >>> mlng.members.fetch_all()
            {123: <Member>, 321: <Member>, ...}

        """
        if 'mailing_id' not in self.mailing:
            raise ex.NoMailingIdError()
        member = emma.model.member
        path = '/mailings/%s/members' % self.mailing['mailing_id']
        if not self._dict:
            self._dict = dict(
                (x['member_id'], member.Member(self.mailing.account, x))
                    for x in self.mailing.account.adapter.paginated_get(path))
        return self._dict