Ejemplo n.º 1
0
    def __call__(self, instance, *args, **kwargs):
        '''
        Returns getActiveEventTypes and getEvents in a single call.
        The events returned by getActiveEventTypes are aliased to look like
        an answer from getEvents

        @param instance: object whose method is being called
        @type instance: object (a L{BfApi} subclass)

        @returns: Betfair API answer
        @rtype: parsed answer
        '''
        callArgs = self.kwargs.copy()
        callArgs.update(**kwargs)
        eventParentId = callArgs.get('eventParentId')

        if eventParentId == bfglobals.eventRootId:
            response = instance.getActiveEventTypes()
            # Alias the .id and .name attributes to those of an event
            for event in response.eventTypeItems:
                event.eventTypeId = event.id
                event.eventId = event.id
                del event.id
                event.eventName = event.name
                del event.name

            # Create the eventItems and marketItems alias
            response.eventItems = response.eventTypeItems
            del response.eventTypeItems
            response.marketItems = list()

            return response

        return BfApi.getEvents(instance, eventParentId=eventParentId)