Exemplo n.º 1
0
 def _add_prev_link(self, resp, params, clockwise):
     journeys = self.filter_journeys(resp.journeys)
     if not journeys:
         return None
     next_journey = max(journeys, key=lambda j: j.arrival_date_time)
     params['datetime'] = timestamp_to_str(next_journey.arrival_date_time -
                                           60)
     params['datetime_represents'] = 'arrival'
     add_link(resp, rel='prev', **params)
Exemplo n.º 2
0
 def _add_next_link(self, resp, params, clockwise):
     journeys = self.filter_journeys(resp.journeys)
     if not journeys:
         return None
     next_journey = max(journeys, key=lambda j: j.departure_date_time)
     params['datetime'] = timestamp_to_str(
         next_journey.departure_date_time + 60)
     params['datetime_represents'] = 'departure'
     add_link(resp, rel='next', **params)
Exemplo n.º 3
0
 def _add_bypass_disruptions_link(self, resp, params):
     # find first impact with a NO_SERVICE severity
     if 'realtime' in params.get('data_freshness', []):
         return
     found = next((True for impact in resp.impacts if impact.severity.effect == Severity.NO_SERVICE), False)
     if found:
         cloned_params = copy.deepcopy(params)
         cloned_params['data_freshness'] = 'realtime'
         add_link(resp, rel='bypass_disruptions', **cloned_params)
Exemplo n.º 4
0
    def _add_first_last_links(self, resp, params):
        soonest_departure_ts = min(j.departure_date_time for j in resp.journeys)
        soonest_departure = timestamp_to_datetime(soonest_departure_ts)
        if soonest_departure:
            soonest_departure = soonest_departure.replace(hour=0, minute=0, second=0)
            params['datetime'] = dt_to_str(soonest_departure)
            params['datetime_represents'] = 'departure'
            add_link(resp, rel='first', **params)

        tardiest_arrival_ts = max(j.arrival_date_time for j in resp.journeys)
        tardiest_arrival = timestamp_to_datetime(tardiest_arrival_ts)
        if tardiest_arrival:
            tardiest_arrival = tardiest_arrival.replace(hour=23, minute=59, second=59)
            params['datetime'] = dt_to_str(tardiest_arrival)
            params['datetime_represents'] = 'arrival'
            add_link(resp, rel='last', **params)
Exemplo n.º 5
0
 def _add_next_link(self, resp, params, clockwise):
     next_dt = self.next_journey_datetime(resp.journeys, clockwise)
     if next_dt is not None:
         params['datetime'] = timestamp_to_str(next_dt)
         params['datetime_represents'] = 'departure'
         add_link(resp, rel='next', **params)
Exemplo n.º 6
0
 def _add_prev_link(self, resp, params, clockwise):
     prev_dt = self.previous_journey_datetime(resp.journeys, clockwise)
     if prev_dt is not None:
         params['datetime'] = timestamp_to_str(prev_dt)
         params['datetime_represents'] = 'arrival'
         add_link(resp, rel='prev', **params)
Exemplo n.º 7
0
 def _add_ridesharing_link(self, resp, params, instance):
     req = request.args.to_dict(flat=False)
     req['partner_services[]'] = 'ridesharing'
     req['datetime'] = dt_to_str(params.original_datetime)
     req['region'] = instance.name
     add_link(resp, rel='ridesharing_journeys', **req)