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

API: Support HAFAS checkin (via journeyID)

parent 85022709
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -527,7 +527,8 @@ sub startup {
					my ($journey) = @_;
					my $found;
					for my $stop ( $journey->route ) {
						if ( $stop->eva == $station ) {
						if ( $stop->name eq $station or $stop->eva == $station )
						{
							$found = $stop;
							last;
						}
+14 −5
Original line number Diff line number Diff line
@@ -176,12 +176,14 @@ sub travel_v1 {
		my $from_station = sanitize( q{}, $payload->{fromStation} );
		my $to_station   = sanitize( q{}, $payload->{toStation} );
		my $train_id;
		my $hafas = exists $payload->{train}{journeyID} ? 1 : 0;

		if (
			not(
				$from_station
				and (  ( $payload->{train}{type} and $payload->{train}{no} )
					or $payload->{train}{id} )
					or $payload->{train}{id}
					or $payload->{train}{journeyID} )
			)
		  )
		{
@@ -196,7 +198,7 @@ sub travel_v1 {
			return;
		}

		if ( not $self->stations->search($from_station) ) {
		if ( not $hafas and not $self->stations->search($from_station) ) {
			$self->render(
				json => {
					success    => \0,
@@ -208,7 +210,10 @@ sub travel_v1 {
			return;
		}

		if ( $to_station and not $self->stations->search($to_station) ) {
		if (    $to_station
			and not $hafas
			and not $self->stations->search($to_station) )
		{
			$self->render(
				json => {
					success    => \0,
@@ -222,7 +227,11 @@ sub travel_v1 {

		my $train_p;

		if ( exists $payload->{train}{id} ) {
		if ( exists $payload->{train}{journeyID} ) {
			$train_p = Mojo::Promise->resolve(
				sanitize( q{}, $payload->{train}{journeyID} ) );
		}
		elsif ( exists $payload->{train}{id} ) {
			$train_p
			  = Mojo::Promise->resolve( sanitize( 0, $payload->{train}{id} ) );
		}
+14 −1
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@
		<p style="font-family: Monospace;">
			curl -X POST -H "Content-Type: application/json" -d '{"token":"<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>"}' <%= $api_root %>/travel
		</p>
		<p>Payload zum Einchecken, optional mit Zielwahl:</p>
		<p>Payload zum Einchecken per IRIS-Backend (Schienenverkehr DE/DB), optional mit Zielwahl:</p>
		<p style="font-family: Monospace;">
		{<br/>
			"token" : "<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>",<br/>
@@ -116,6 +116,19 @@
			"comment" : "Beliebiger Text" (optional, überschreibt vorherigen Kommentar)<br/>
		}
		</p>
		<p>Payload zum Einchecken per HAFAS-Backend (Nahverkehr und außerhalb DE/DB), optional mit Zielwahl. fromStation und toStation müssen mit den Unterwegshalten übereinstimmen, z.B. "Hauptbahnhof (U Gleis 2+4), Essen (Ruhr)" statt "Essen Hbf".</p>
		<p style="font-family: Monospace;">
		{<br/>
			"token" : "<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>",<br/>
			"action" : "checkin",<br/>
			"train" : {<br/>
				"journeyID" : "1|1426396|4|80|19082023",<br/>
			}<br/>
			"fromStation" : 651806, (Name oder EVA-Nummer)<br/>
			"toStation" : 654645, (optional, Name oder EVA-Nummer)<br/>
			"comment" : "Beliebiger Text" (optional, überschreibt vorherigen Kommentar)<br/>
		}
		</p>
		<p>Payload zur Wahl eines neuen Ziels, wenn bereits eingecheckt:</p>
		<p style="font-family: Monospace;">
		{<br/>