def JourneyBatch(request): user = User.all().filter('facebook_id', request.session['facebook_id']).get() for point in json.loads(request.body): # Date sent date = datetime.fromtimestamp(int( point['date'])).replace(tzinfo=pytz.UTC) if 'journey' in point: if point['journey'] != 'Stop': journey = Journey(user=user, travel_type=TravelType.all().filter( 'name', point['journey']).get(), start_date=date) journey.put() logging.info('Journey started for ' + point['journey']) user.active_trip_id = journey.key().id() else: logging.info('Journey ended') journey = Journey.get_by_id(user.active_trip_id) journey.end_date = date journey.put() # Remove active trip user.active_trip_id = -1 user.put() elif 'distance' in point and user.active_trip_id != -1: # Get the current journey and save point Point(journey=Journey.get_by_id(user.active_trip_id), latitude=float(point['x']), longitude=float(point['y']), speed=float(point['speed']), time=date, distance=float(point['distance'])).put() return HttpResponse()
def TripBatch(request): user_profile = UserProfile.objects.get(user=request.user) for point in json.loads(request.body): # Start new journey if 'journey' in point: if point['journey'] == 'Stop': print 'Journey ended' journey = Journey.objects.get(id=user_profile.active_trip_id) # End date date = datetime.fromtimestamp(int(point['date'])) date = date.replace(tzinfo=pytz.UTC) journey.end_date = date journey.save() # Remove active trip user_profile.active_trip_id = -1 else: # Start date date = datetime.fromtimestamp(int(point['date'])) date = date.replace(tzinfo=pytz.UTC) journey = Journey( user_profile=user_profile, travel_type=TravelType.objects.get(name=point['journey']), start_date=date) journey.save() print 'Journey started for ' + point['journey'] user_profile.active_trip_id = journey.id user_profile.save() elif 'distance' in point and user_profile.active_trip_id > -1: # Get the current journey and save point date = datetime.fromtimestamp(int(point['date'])) date = date.replace(tzinfo=pytz.UTC) Point(journey=Journey.objects.get(id=user_profile.active_trip_id), latitude=float(point['x']), longitude=float(point['y']), speed=float(point['speed']), time=date, distance=float(point['distance'])).save() return HttpResponse()