mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-17 12:49:49 +00:00
EFA: Parse serverID from <itdRequest>.
This commit is contained in:
parent
a932f98099
commit
a844c5bc56
5 changed files with 28 additions and 23 deletions
|
@ -3141,6 +3141,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider {
|
|||
final String serverVersion = XmlPullUtil.attr(pp, "version");
|
||||
final String now = XmlPullUtil.optAttr(pp, "now", null);
|
||||
final String sessionId = XmlPullUtil.attr(pp, "sessionID");
|
||||
final String serverId = XmlPullUtil.attr(pp, "serverID");
|
||||
|
||||
final long serverTime;
|
||||
if (now != null) {
|
||||
|
@ -3152,7 +3153,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider {
|
|||
serverTime = 0;
|
||||
}
|
||||
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, serverVersion, serverTime, sessionId);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, serverVersion, serverId, serverTime,
|
||||
sessionId);
|
||||
|
||||
XmlPullUtil.enter(pp, "itdRequest");
|
||||
|
||||
|
@ -3183,11 +3185,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider {
|
|||
ParserUtils.parseEuropeanTime(serverTime, now.substring(11));
|
||||
|
||||
final Map<String, String> params = processPas(pp);
|
||||
final String sessionId = params.get("sessionID");
|
||||
final String requestId = params.get("requestID");
|
||||
final String sessionId = params.get("sessionID");
|
||||
final String serverId = params.get("serverID");
|
||||
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, null, serverTime.getTimeInMillis(),
|
||||
new String[] { sessionId, requestId });
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, null, serverId,
|
||||
serverTime.getTimeInMillis(), new String[] { sessionId, requestId });
|
||||
|
||||
return header;
|
||||
}
|
||||
|
|
|
@ -836,7 +836,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider {
|
|||
final String headErr = head.optString("err", null);
|
||||
if (headErr != null)
|
||||
throw new RuntimeException(headErr);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), 0, null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), null, 0, null);
|
||||
|
||||
final JSONArray svcResList = head.getJSONArray("svcResL");
|
||||
checkState(svcResList.length() == 1);
|
||||
|
@ -901,7 +901,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider {
|
|||
final String headErr = head.optString("err", null);
|
||||
if (headErr != null)
|
||||
throw new RuntimeException(headErr);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), 0, null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), null, 0, null);
|
||||
final QueryDeparturesResult result = new QueryDeparturesResult(header);
|
||||
|
||||
final JSONArray svcResList = head.getJSONArray("svcResL");
|
||||
|
@ -1000,7 +1000,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider {
|
|||
final String headErr = head.optString("err", null);
|
||||
if (headErr != null)
|
||||
throw new RuntimeException(headErr);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), 0, null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), null, 0, null);
|
||||
|
||||
final JSONArray svcResList = head.getJSONArray("svcResL");
|
||||
checkState(svcResList.length() == 1);
|
||||
|
@ -1092,7 +1092,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider {
|
|||
final String headErr = head.optString("err", null);
|
||||
if (headErr != null)
|
||||
throw new RuntimeException(headErr);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), 0, null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, head.getString("ver"), null, 0, null);
|
||||
|
||||
final JSONArray svcResList = head.getJSONArray("svcResL");
|
||||
checkState(svcResList.length() == 1);
|
||||
|
@ -1516,7 +1516,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider {
|
|||
|
||||
XmlPullUtil.require(pp, "ResC");
|
||||
final String product = XmlPullUtil.attr(pp, "prod").split(" ")[0];
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, product, 0, null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, product, null, 0, null);
|
||||
XmlPullUtil.enter(pp, "ResC");
|
||||
|
||||
if (XmlPullUtil.test(pp, "Err")) {
|
||||
|
@ -2168,8 +2168,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider {
|
|||
final int version = is.readShortReverse();
|
||||
if (version != 6 && version != 5)
|
||||
throw new IllegalStateException("unknown version: " + version + ", first chars: " + bodyPeek);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, Integer.toString(version), 0,
|
||||
null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, Integer.toString(version), null,
|
||||
0, null);
|
||||
|
||||
// quick seek for pointers
|
||||
is.reset();
|
||||
|
|
|
@ -668,7 +668,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider {
|
|||
@Override
|
||||
public NearbyLocationsResult queryNearbyLocations(final EnumSet<LocationType> types, final Location location,
|
||||
int maxDistance, final int maxLocations) throws IOException {
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, null, 0, null);
|
||||
|
||||
// Build query uri depending of location type.
|
||||
final StringBuilder queryUri = new StringBuilder(uri());
|
||||
|
@ -739,7 +739,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider {
|
|||
final int maxDepartures, final boolean equivs) throws IOException {
|
||||
checkNotNull(Strings.emptyToNull(stationId));
|
||||
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, null, 0, null);
|
||||
|
||||
try {
|
||||
final QueryDeparturesResult result = new QueryDeparturesResult(resultHeader,
|
||||
|
@ -863,7 +863,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider {
|
|||
}
|
||||
}
|
||||
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, null, 0, null);
|
||||
return new SuggestLocationsResult(resultHeader, locations);
|
||||
} catch (final JSONException jsonExc) {
|
||||
throw new ParserException(jsonExc);
|
||||
|
@ -875,7 +875,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider {
|
|||
final Date date, final boolean dep, final @Nullable Set<Product> products,
|
||||
final @Nullable Optimize optimize, final @Nullable WalkSpeed walkSpeed,
|
||||
final @Nullable Accessibility accessibility, final @Nullable Set<Option> options) throws IOException {
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, null, 0, null);
|
||||
|
||||
try {
|
||||
if (from != null && from.isIdentified() && to != null && to.isIdentified()) {
|
||||
|
@ -1044,7 +1044,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider {
|
|||
|
||||
@Override
|
||||
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later) throws IOException {
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, null, 0, null);
|
||||
|
||||
final Context context = (Context) contextObj;
|
||||
final Location from = context.from;
|
||||
|
|
|
@ -380,8 +380,7 @@ public class VrsProvider extends AbstractNetworkProvider {
|
|||
final String error = Strings.emptyToNull(head.optString("error", "").trim());
|
||||
if (error != null) {
|
||||
if (error.equals("Leere Koordinate.") || error.equals("Leere ASS-ID und leere Koordinate"))
|
||||
return new NearbyLocationsResult(new ResultHeader(NetworkId.VRS, SERVER_PRODUCT, null, 0, null),
|
||||
locations);
|
||||
return new NearbyLocationsResult(new ResultHeader(NetworkId.VRS, SERVER_PRODUCT), locations);
|
||||
else if (error.equals("ASS2-Server lieferte leere Antwort."))
|
||||
return new NearbyLocationsResult(new ResultHeader(NetworkId.VRS, SERVER_PRODUCT),
|
||||
NearbyLocationsResult.Status.SERVICE_DOWN);
|
||||
|
@ -403,7 +402,7 @@ public class VrsProvider extends AbstractNetworkProvider {
|
|||
}
|
||||
serverTime = parseDateTime(timetable.getJSONObject(i).getString("generated")).getTime();
|
||||
}
|
||||
final ResultHeader header = new ResultHeader(NetworkId.VRS, SERVER_PRODUCT, null, serverTime, null);
|
||||
final ResultHeader header = new ResultHeader(NetworkId.VRS, SERVER_PRODUCT, null, null, serverTime, null);
|
||||
return new NearbyLocationsResult(header, locations);
|
||||
} catch (final JSONException x) {
|
||||
throw new RuntimeException("cannot parse: '" + page + "' on " + uri, x);
|
||||
|
@ -871,7 +870,7 @@ public class VrsProvider extends AbstractNetworkProvider {
|
|||
changes));
|
||||
}
|
||||
long serverTime = parseDateTime(head.getString("generated")).getTime();
|
||||
final ResultHeader header = new ResultHeader(NetworkId.VRS, SERVER_PRODUCT, null, serverTime, null);
|
||||
final ResultHeader header = new ResultHeader(NetworkId.VRS, SERVER_PRODUCT, null, null, serverTime, null);
|
||||
context.from = from;
|
||||
context.to = to;
|
||||
context.via = via;
|
||||
|
|
|
@ -35,18 +35,20 @@ public final class ResultHeader implements Serializable {
|
|||
public final NetworkId network;
|
||||
public final String serverProduct;
|
||||
public final @Nullable String serverVersion;
|
||||
public final @Nullable String serverName;
|
||||
public final long serverTime;
|
||||
public final Object context;
|
||||
|
||||
public ResultHeader(final NetworkId network, final String serverProduct) {
|
||||
this(network, serverProduct, null, 0, null);
|
||||
this(network, serverProduct, null, null, 0, null);
|
||||
}
|
||||
|
||||
public ResultHeader(final NetworkId network, final String serverProduct, final String serverVersion,
|
||||
final long serverTime, final Object context) {
|
||||
final String serverName, final long serverTime, final Object context) {
|
||||
this.network = checkNotNull(network);
|
||||
this.serverProduct = checkNotNull(serverProduct);
|
||||
this.serverVersion = serverVersion;
|
||||
this.serverName = serverName;
|
||||
this.serverTime = serverTime;
|
||||
this.context = context;
|
||||
}
|
||||
|
@ -54,6 +56,7 @@ public final class ResultHeader implements Serializable {
|
|||
@Override
|
||||
public String toString() {
|
||||
return MoreObjects.toStringHelper(this).add("serverProduct", serverProduct).add("serverVersion", serverVersion)
|
||||
.add("serverTime", serverTime).add("context", context).omitNullValues().toString();
|
||||
.add("serverName", serverName).add("serverTime", serverTime).add("context", context).omitNullValues()
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue