Unverified Commit 042a59c8 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

EFA departure board: add JSON interface

parent 16d9f3a0
Loading
Loading
Loading
Loading
+33 −17
Original line number Original line Diff line number Diff line
@@ -1695,6 +1695,11 @@ sub handle_efa {
	for my $result ( $efa->results ) {
	for my $result ( $efa->results ) {
		my $time;
		my $time;


		if ( $template eq 'json' ) {
			push( @departures, $result );
			next;
		}

		if ( $show_realtime and $result->rt_datetime ) {
		if ( $show_realtime and $result->rt_datetime ) {
			$time = $result->rt_datetime->strftime('%H:%M');
			$time = $result->rt_datetime->strftime('%H:%M');
		}
		}
@@ -1764,23 +1769,34 @@ sub handle_efa {
		);
		);
	}
	}


	$self->render(
	if ( $template eq 'json' ) {
		$template,
		$self->res->headers->access_control_allow_origin(q{*});
		description      => "Abfahrtstafel $station_name",
		my $json = {
		departures       => \@departures,
			departures => \@departures,
		station          => $efa->stop->name,
		};
		version          => $self->config->{version},
		$self->render(
		title            => $efa->stop->name // $station_name,
			json => $json,
		refresh_interval => $template eq 'app' ? 0 : 120,
		);
		hide_opts        => $hide_opts,
	}
		hide_low_delay   => $hide_low_delay,
	else {
		show_realtime    => $show_realtime,
		$self->render(
		load_marquee     => (
			$template,
			     $template eq 'single'
			description      => "Abfahrtstafel $station_name",
			  or $template eq 'multi'
			departures       => \@departures,
		),
			station          => $efa->stop->name,
		force_mobile => ( $template eq 'app' ),
			version          => $self->config->{version},
	);
			title            => $efa->stop->name // $station_name,
			refresh_interval => $template eq 'app' ? 0 : 120,
			hide_opts        => $hide_opts,
			hide_low_delay   => $hide_low_delay,
			show_realtime    => $show_realtime,
			load_marquee     => (
				     $template eq 'single'
				  or $template eq 'multi'
			),
			force_mobile => ( $template eq 'app' ),
		);
	}
}
}


sub handle_result {
sub handle_result {