Ejemplo n.º 1
0
    def generate():
        """
        This generator progressively returns data to the browser.
        """

        try:
            rk.extract_code(request.url)

            yield yield_json(output="Requesting session token...")

            rk.request_token()

            # store to the database
            User.from_rk(rk)

            yield yield_json(output="Accessing profile...")

            profile = rk.get_profile()
            items = list(rk.get_fitness_items())
            nitems = len(items)

            yield yield_json(profile=profile, nitems=nitems, state='complete')
            raise StopIteration

            # FIXME pass this off to a celery task
            for n, item in enumerate(items):
                item = rk.get_fitness_item(item)
                yield yield_json(n=n, nitems=nitems)

            yield yield_json(
                output="Transfer complete. Terminating connection",
                state='complete')
        except StandardError as e:
            yield yield_json(
                output="CARRIER TERMINATED",
                error=e.message,
                state='failed')
            raise e