Exemplo n.º 1
0
    def update_persons(self, start, batch_size = 100, verbosity = 1):
        '''Updates persons from etvnet.'''
        
        cred = Credentials(ETVNET_PERSONS_PUBLIC_KEY, ETVNET_PERSONS_PRIVATE_KEY)
        conn = etvIntegrationConnection(cred, ETVNET_PERSONS_ENDPOINT)
        result = conn.make_request(
            'GET', '/integration/person_list.json', args={'start': start, 'batch_size': batch_size, 'type': 'person'}
        )
        data = simplejson.load(result)

        result = None
        if data:
            for p in data:
                try:
                    person = Person.objects.get(external_ident=p.get('id'))
                except Person.DoesNotExist:
                    person = Person(external_ident=p.get('id'))
                person.first_name = p.get('first_name')
                person.last_name = p.get('last_name')
                person.name = p.get('name')
                person.birthday = p.get('birthday')
                person.death = p.get('death')
                person.is_available = p.get('is_approved')
                person.updated = result = p.get('updated')
                person.url = p.get('url')

                if verbosity >= 2:
                    print(
                        "id: %s name: %s (%s)" \
                        % (p.get('id'), p.get('name').encode('utf-8'), person.pk and 'updated' or 'created'))

                person.save()

        return result