Version 3.0.364

This commit is contained in:
Anja 2023-05-09 08:47:52 +02:00
parent 91d42552c7
commit 0b9196a78d
91 changed files with 3452 additions and 555 deletions

View file

@ -0,0 +1,139 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using TINK.Model.Bikes.BikeInfoNS.BluetoothLock;
using TINK.Model.Connector;
using TINK.Model.Device;
using TINK.Model.Services.CopriApi;
using TINK.Repository;
using TINK.Repository.Request;
using TINK.Repository.Response;
using TINK.Repository.Response.Stations;
using static TINK.Repository.CopriCallsMemory;
namespace TestFramework.Repository
{
/// <summary> Allows use of memory for retrieving defined responses.</summary>
public class CopriCallsCacheMemory : ICopriCache
{
private CopriCallsMemory server;
public CopriCallsCacheMemory(
string merchantId,
SampleSets? sampleSet = null,
int? index = null,
string sessionCookie = null)
{
server = new CopriCallsMemory(merchantId, sampleSet, index, sessionCookie);
}
public bool IsStationsExpired => true;
public bool IsBikesAvailableExpired => true;
public bool IsBikesOccupiedExpired => true;
public bool IsConnected => server.IsConnected;
public string SessionCookie => server.SessionCookie;
public string MerchantId => server.MerchantId;
public void AddToCache(StationsAvailableResponse stations)
{
return;
}
public void AddToCache(BikesAvailableResponse bikes)
{
return;
}
public void AddToCache(BikesReservedOccupiedResponse bikes)
{
return;
}
public Task<AuthorizationResponse> DoAuthorizationAsync(string p_strMailAddress, string p_strPassword, string p_strDeviceId)
{
throw new NotImplementedException();
}
public Task<AuthorizationoutResponse> DoAuthoutAsync()
{
throw new NotImplementedException();
}
public Task<ReservationBookingResponse> DoReserveAsync(string bikeId, Uri operatorUri)
{
throw new NotImplementedException();
}
public Task<ReservationCancelReturnResponse> DoCancelReservationAsync(string p_iBikeId, Uri operatorUri)
{
throw new NotImplementedException();
}
public Task<ReservationBookingResponse> CalculateAuthKeysAsync(string bikeId, Uri operatorUri)
=> throw new NotSupportedException();
public Task<ResponseBase> StartReturningBike(
string bikeId,
Uri operatorUri)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> UpdateLockingStateAsync(
string bikeId,
lock_state state,
Uri operatorUri,
LocationDto geolocation,
double batteryPercentage,
IVersionInfo versionInfo)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> DoBookAsync(Uri operatorUri, string bikeId, Guid guid, double batteryPercentage, LockingAction? nextAction = null)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> BookAvailableAndStartOpeningAsync(string bikeId, Uri operatorUri)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> BookReservedAndStartOpeningAsync(string bikeId, Uri operatorUri)
=> throw new NotImplementedException();
public Task<DoReturnResponse> DoReturn(string bikeId, LocationDto location, Uri operatorUri)
=> throw new NotImplementedException();
/// <summary> Returns a bike and starts closing. </summary>
/// <param name="bikeId">Id of the bike to return.</param>
/// <param name="smartDevice">Provides info about hard and software.</param>
/// <param name="operatorUri">Holds the uri of the operator or null, in case of single operator setup.</param>
/// <returns>Response on returning request.</returns>
public Task<DoReturnResponse> ReturnAndStartClosingAsync(
string bikeId,
Uri operatorUri)
=> throw new Exception("Rückgabe mit mit Schloss schließen Befehl Offlinemodus nicht möglich!");
public Task<SubmitFeedbackResponse> DoSubmitFeedback(string bikeId, int? currentChargeBars, string message, bool isBikeBroken, Uri operatorUri)
=> throw new NotImplementedException();
/// <summary> Submits mini survey to copri server. </summary>
/// <param name="answers">Collection of answers.</param>
public Task<ResponseBase> DoSubmitMiniSurvey(IDictionary<string, string> answers)
=> throw new NotImplementedException();
public Task<BikesAvailableResponse> GetBikesAvailableAsync()
{
return server.GetBikesAvailableAsync();
}
public Task<BikesReservedOccupiedResponse> GetBikesOccupiedAsync()
{
return server.GetBikesOccupiedAsync();
}
public Task<StationsAvailableResponse> GetStationsAsync()
{
return server.GetStationsAsync();
}
}
}

View file

@ -0,0 +1,127 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using TINK.Model.Bikes.BikeInfoNS.BluetoothLock;
using TINK.Model.Connector;
using TINK.Model.Services.CopriApi;
using TINK.Repository.Request;
using TINK.Repository.Response;
using TINK.Repository.Response.Stations;
namespace TestFramework.Repository
{
/// <summary> Allows use of memory for retrieving defined responses.</summary>
public class CopriCallsCacheMemory001 : ICopriCache
{
private CopriCallsMemory001 server;
public CopriCallsCacheMemory001(string sessionCookie = null)
{
server = new CopriCallsMemory001(sessionCookie);
}
public bool IsStationsExpired => true;
public bool IsBikesAvailableExpired => true;
public bool IsBikesOccupiedExpired => true;
public bool IsConnected => server.IsConnected;
public string SessionCookie => server.SessionCookie;
public string MerchantId => server.MerchantId;
public void AddToCache(StationsAvailableResponse stations)
{
return;
}
public void AddToCache(BikesAvailableResponse bikes)
{
return;
}
public void AddToCache(BikesReservedOccupiedResponse bikes)
{
return;
}
public Task<AuthorizationResponse> DoAuthorizationAsync(string p_strMailAddress, string p_strPassword, string p_strDeviceId)
{
throw new NotImplementedException();
}
public Task<AuthorizationoutResponse> DoAuthoutAsync()
{
throw new NotImplementedException();
}
public Task<ReservationBookingResponse> DoReserveAsync(string bikeId, Uri operatorUri)
{
throw new NotImplementedException();
}
public Task<ReservationCancelReturnResponse> DoCancelReservationAsync(string p_iBikeId, Uri operatorUri)
{
throw new NotImplementedException();
}
public Task<ReservationBookingResponse> CalculateAuthKeysAsync(string bikeId, Uri operatorUri)
=> throw new NotSupportedException();
public Task<ResponseBase> StartReturningBike(
string bikeId,
Uri operatorUri)
=> null;
public Task<ReservationBookingResponse> UpdateLockingStateAsync(
string bikeId,
lock_state state,
Uri operatorUri,
LocationDto geolocation,
double batteryPercentage,
IVersionInfo versionInfo)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> DoBookAsync(Uri operatorUri, string bikeId, Guid guid, double batteryPercentage, LockingAction? nextAction = null)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> BookAvailableAndStartOpeningAsync(string bikeId, Uri operatorUri)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> BookReservedAndStartOpeningAsync(string bikeId, Uri operatorUri)
=> throw new NotImplementedException();
public Task<DoReturnResponse> DoReturn(string bikeId, LocationDto location, Uri operatorUri)
=> throw new NotImplementedException();
public Task<DoReturnResponse> ReturnAndStartClosingAsync(
string bikeId,
Uri operatorUri)
=> throw new NotImplementedException();
public Task<SubmitFeedbackResponse> DoSubmitFeedback(string bikeId, int? currentChargeBars, string message, bool isBikeBroken, Uri operatorUri)
=> throw new NotImplementedException();
/// <summary> Submits mini survey to copri server. </summary>
/// <param name="answers">Collection of answers.</param>
public Task<ResponseBase> DoSubmitMiniSurvey(IDictionary<string, string> answers)
=> throw new NotImplementedException();
public Task<BikesAvailableResponse> GetBikesAvailableAsync()
{
return server.GetBikesAvailableAsync();
}
public Task<BikesReservedOccupiedResponse> GetBikesOccupiedAsync()
{
return server.GetBikesOccupiedAsync();
}
public Task<StationsAvailableResponse> GetStationsAsync()
{
return server.GetStationsAsync();
}
}
}

View file

@ -0,0 +1,126 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using TINK.Model.Bikes.BikeInfoNS.BluetoothLock;
using TINK.Model.Connector;
using TINK.Repository.Request;
using TINK.Repository.Response.Stations;
using TINK.Repository.Response;
using TINK.Model.Services.CopriApi;
namespace TestFramework.Repository
{
public class CopriCallsCacheMemory001v2NotLoggedIn : ICopriCache
{
private CopriCallsMemory001v2NotLoggedIn server;
public CopriCallsCacheMemory001v2NotLoggedIn(string sessionCookie = null)
{
server = new CopriCallsMemory001v2NotLoggedIn(sessionCookie);
}
public bool IsStationsExpired => true;
public bool IsBikesAvailableExpired => true;
public bool IsBikesOccupiedExpired => true;
public bool IsConnected => server.IsConnected;
public string SessionCookie => server.SessionCookie;
public string MerchantId => server.MerchantId;
public void AddToCache(StationsAvailableResponse stations)
{
return;
}
public void AddToCache(BikesAvailableResponse bikes)
{
return;
}
public void AddToCache(BikesReservedOccupiedResponse bikes)
{
return;
}
public Task<AuthorizationResponse> DoAuthorizationAsync(string p_strMailAddress, string p_strPassword, string p_strDeviceId)
{
throw new NotImplementedException();
}
public Task<AuthorizationoutResponse> DoAuthoutAsync()
{
throw new NotImplementedException();
}
public Task<ReservationBookingResponse> DoReserveAsync(string bikeId, Uri operatorUri)
{
throw new NotImplementedException();
}
public Task<ReservationCancelReturnResponse> DoCancelReservationAsync(string p_iBikeId, Uri operatorUri)
{
throw new NotImplementedException();
}
public Task<ReservationBookingResponse> CalculateAuthKeysAsync(string bikeId, Uri operatorUri)
=> throw new NotSupportedException();
public Task<ResponseBase> StartReturningBike(
string bikeId,
Uri operatorUri)
=> null;
public Task<ReservationBookingResponse> UpdateLockingStateAsync(
string bikeId,
lock_state state,
Uri operatorUri,
LocationDto geolocation,
double batteryPercentage,
IVersionInfo versionInfo)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> DoBookAsync(Uri operatorUri, string bikeId, Guid guid, double batteryPercentage, LockingAction? nextAction = null)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> BookAvailableAndStartOpeningAsync(string bikeId, Uri operatorUri)
=> throw new NotImplementedException();
public Task<ReservationBookingResponse> BookReservedAndStartOpeningAsync(string bikeId, Uri operatorUri)
=> throw new NotImplementedException();
public Task<DoReturnResponse> DoReturn(string bikeId, LocationDto location, Uri operatorUri)
=> throw new NotImplementedException();
public Task<DoReturnResponse> ReturnAndStartClosingAsync(
string bikeId,
Uri operatorUri)
=> throw new NotImplementedException();
public Task<SubmitFeedbackResponse> DoSubmitFeedback(string bikeId, int? currentChargeBars, string message, bool isBikeBroken, Uri operatorUri)
=> throw new NotImplementedException();
/// <summary> Submits mini survey to copri server. </summary>
/// <param name="answers">Collection of answers.</param>
public Task<ResponseBase> DoSubmitMiniSurvey(IDictionary<string, string> answers)
=> throw new NotImplementedException();
public Task<BikesAvailableResponse> GetBikesAvailableAsync()
{
return server.GetBikesAvailableAsync();
}
public Task<BikesReservedOccupiedResponse> GetBikesOccupiedAsync()
{
return server.GetBikesOccupiedAsync();
}
public Task<StationsAvailableResponse> GetStationsAsync()
{
return server.GetStationsAsync();
}
}
}

View file

@ -0,0 +1,23 @@
using TINK.Repository;
namespace TestFramework.Repository
{
/// <summary>
/// Holds some COPRI responses for testing purposes.
/// </summary>
/// <remarks> Holds some demo Mein konrad and LastenradBayern bikes
/// </remarks>
public class CopriCallsMemory001v2NotLoggedIn : CopriCallMemoryBase, ICopriServer
{
public CopriCallsMemory001v2NotLoggedIn(string sessionCookie = null, string merchantId = null) : base(
bikesAvailableResponseResource: "TestFramework.Repository.CopriCallsMemory001v2NotLoggedIn.BikesAvailableResponse.json",
bikesOccupiedResponseResoure: "TestFramework.Repository.CopriCallsMemory001v2NotLoggedIn.BikesOccupiedResponse.json",
authResponseResource: "TestFramework.Repository.CopriCallsMemory001v2NotLoggedIn.AuthorizationResponse.json",
authOutResponseResource: "TestFramework.Repository.CopriCallsMemory001v2NotLoggedIn.AuthoutResponse.json",
stationsResponseResource: "TestFramework.Repository.CopriCallsMemory001v2NotLoggedIn.StationsAvailable.json",
sessionCookie: sessionCookie,
merchantId: merchantId)
{ }
}
}

View file

@ -0,0 +1,31 @@
{
"shareejson": {
"clearing_cache": "0",
"privacy_html": "site/privacy.html",
"user_id": "javaminister@gmail.com",
"impress_html": "site/impress.html",
"tariff_info_html": "site/tariff_info_1.html",
"lang": "DE",
"last_used_operator": {
"operator_name": "sharee.bike | TeilRad GmbH",
"operator_hours": "B<>rozeiten: Montag, Mittwoch, Freitag 9-12 Uhr",
"operator_phone": "+49 761 45370097",
"operator_email": "hotline@sharee.bike",
"operator_color": "#009699"
},
"response": "authorization",
"agb_checked": "0",
"agb_html": "site/agb.html",
"response_text": "Herzlich willkommen im Fahrradmietsystem",
"bike_info_html": "site/bike_info.html",
"debuglevel": "1",
"uri_primary": "https://shareeapp-primary.copri.eu",
"response_state": "OK, nothing todo",
"new_authcoo": "1",
"user_tour": [],
"authcookie": "6103_112e96b36ba33de245943c5ffaf369cd_oiF2kahH",
"copri_version": "4.1.8.21",
"apiserver": "https://shareeapp-fr01.copri.eu",
"user_group": []
}
}

View file

@ -0,0 +1,32 @@
{
"shareejson": {
"copri_version": "4.1.8.21",
"authcookie": "1",
"user_tour": [],
"user_group": null,
"apiserver": "https://shareeapp-fr01.copri.eu",
"debuglevel": "1",
"uri_primary": "https://shareeapp-primary.copri.eu",
"bike_info_html": "site/bike_info.html",
"response_state": "OK, logout",
"new_authcoo": "0",
"lang": "DE",
"last_used_operator": {
"operator_hours": "Bürozeiten: Montag, Mittwoch, Freitag 9-12 Uhr",
"operator_name": "sharee.bike | TeilRad GmbH",
"operator_email": "hotline@sharee.bike",
"operator_phone": "+49 761 45370097",
"operator_color": "#009699"
},
"tariff_info_html": "site/tariff_info_1.html",
"impress_html": "site/impress.html",
"response_text": "Auf Wiedersehen.",
"agb_html": "site/agb.html",
"response": "authout",
"agb_checked": "0",
"privacy_html": "site/privacy.html",
"clearing_cache": "0",
"user_id": "javaminister@gmail.com"
}
}

View file

@ -0,0 +1,270 @@
{
"shareejson": {
"agb_checked": "1",
"response": "bikes_available",
"agb_html": "site/agb.html",
"impress_html": "site/impress.html",
"tariff_info_html": "site/tariff_info_1.html",
"lang": "DE",
"last_used_operator": {
"operator_color": "#008dd2",
"operator_email": "hotline@lastenraddemo.bayern",
"operator_phone": "+49 089 / 111111111",
"operator_name": "Lastenrad Bayern",
"operator_hours": "Bürozeiten: Montag, Mittwoch, Freitag 9-12 Uhr",
"operator_logo": ""
},
"user_id": "ohauff@posteo.de",
"clearing_cache": "0",
"privacy_html": "site/privacy.html",
"bikes": {
// Entry manually created (copy-paste). Might contain dupe entries (2021-11-12).
"FR9999": {
"system": "Ilockit",
"gps": {
"longitude": "7.8255321",
"latitude": "47.9767121"
},
"lock_state": "locked",
"Ilockit_GUID": "00000000-0000-0000-0000-cc141a6f68bb",
"state": "available",
"tariff_description": {
"free_hours": "0.50",
"name": "Tester Basic",
"eur_per_hour": "3.00",
"number": "5494",
"1543": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
},
"max_eur_per_day": "10.00"
},
"bike_group": [
"FR300103"
],
"station": "FR103",
"description": "Quest Carbon",
"Ilockit_ID": "ISHAREIT-9999999",
"authed": "1",
"bike": "FR9999",
"uri_operator": "https://shareeapp-fr01.copri.eu"
},
// Entry manually created (copy-paste). Might contain dupe entries (2021-11-12).
"FR9998": {
"system": "Ilockit",
"gps": {
"longitude": "7.8255321",
"latitude": "47.9767121"
},
"lock_state": "locked",
"Ilockit_GUID": "00000000-0000-0000-0000-cc141a6f68bb",
"state": "available",
"tariff_description": {
"free_hours": "0.50",
"name": "Bacchetta Giro",
"eur_per_hour": "3.00",
"number": "5494",
"1543": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
},
"max_eur_per_day": "10.00"
},
"bike_group": [
"FR300103"
],
"station": "FR103",
"description": "Quest Carbon",
"Ilockit_ID": "ISHAREIT-9999999",
"authed": "1",
"bike": "FR9998",
"uri_operator": "https://shareeapp-fr01.copri.eu"
},
"FR1543": {
"system": "Ilockit",
"gps": {
"longitude": "7.8255321",
"latitude": "47.9767121"
},
"lock_state": "locked",
"Ilockit_GUID": "00000000-0000-0000-0000-cc141a6f68bb",
"state": "available",
"tariff_description": {
"free_hours": "0.50",
"name": "Tester Basic",
"eur_per_hour": "3.00",
"number": "5494",
"1543": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
},
"max_eur_per_day": "10.00"
},
"bike_group": [
"FR300103"
],
"station": "FR101",
"description": "Contributor-bike Dominik",
"Ilockit_ID": "ISHAREIT-2200543",
"authed": "1",
"bike": "FR1543",
"uri_operator": "https://shareeapp-fr01.copri.eu"
},
"FR1003": {
"bike": "FR1003",
"authed": "1",
"uri_operator": "https://shareeapp-fr01.copri.eu",
"bike_group": [
"FR300101"
],
"Ilockit_ID": "ISHAREIT-2200545",
"station": "FR101",
"description": "Stadtrad",
"tariff_description": {
"max_eur_per_day": "10.00",
"number": "5491",
"eur_per_hour": "2.00",
"1003": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
},
"free_hours": "0.50",
"name": "Vauban Basic"
},
"state": "available",
"Ilockit_GUID": "00000000-0000-0000-0000-e38bf9d32234",
"system": "Ilockit",
"gps": {
"longitude": "7.8255772",
"latitude": "47.9765188"
},
"lock_state": "locked"
},
"FR1540": {
"bike_group": [
"FR300103"
],
"Ilockit_ID": "ISHAREIT-2200540",
"description": "Contributor-bike Dieter",
"station": "FR101",
"bike": "FR1540",
"authed": "1",
"uri_operator": "https://shareeapp-fr01.copri.eu",
"Ilockit_GUID": "00000000-0000-0000-0000-fc3c002a2add",
"system": "Ilockit",
"gps": {
"longitude": "7.8256267",
"latitude": "47.976803"
},
"lock_state": "locked",
"tariff_description": {
"1540": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
},
"free_hours": "0.50",
"name": "Tester Basic",
"max_eur_per_day": "10.00",
"eur_per_hour": "3.00",
"number": "5494"
},
"state": "available"
},
"FR1002": {
"bike_group": [
"FR300101"
],
"description": "Lasten-Dreirad",
"station": "FR101",
"Ilockit_ID": "ISHAREIT-2200539",
"authed": "1",
"bike": "FR1002",
"uri_operator": "https://shareeapp-fr01.copri.eu",
"gps": {
"latitude": "47.976552",
"longitude": "7.8255068"
},
"system": "Ilockit",
"lock_state": "locked",
"Ilockit_GUID": "00000000-0000-0000-0000-f0b4a692e169",
"state": "available",
"tariff_description": {
"max_eur_per_day": "10.00",
"1002": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
},
"eur_per_hour": "2.00",
"number": "5491",
"free_hours": "0.50",
"name": "Vauban Basic"
}
},
"FR1538": {
"uri_operator": "https://shareeapp-fr01.copri.eu",
"authed": "1",
"bike": "FR1538",
"station": "FR105",
"description": "Contributor-bike Rainer",
"Ilockit_ID": "ISHAREIT-2200538",
"bike_group": [
"FR300103"
],
"state": "available",
"tariff_description": {
"max_eur_per_day": "10.00",
"eur_per_hour": "3.00",
"number": "5494",
"1538": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
},
"free_hours": "0.50",
"name": "Tester Basic"
},
"gps": {
"latitude": "47.9275957",
"longitude": "7.973976"
},
"lock_state": "locked",
"system": "Ilockit",
"Ilockit_GUID": "00000000-0000-0000-0000-db0319a2555b"
},
"FR1001": {
"bike_group": [
"FR300101"
],
"station": "FR101",
"description": "Lastenrad",
"Ilockit_ID": "ISHAREIT-2200536",
"authed": "1",
"bike": "FR1001",
"uri_operator": "https://shareeapp-fr01.copri.eu",
"lock_state": "locked",
"gps": {
"latitude": "47.9765091",
"longitude": "7.8255631"
},
"system": "Ilockit",
"Ilockit_GUID": "00000000-0000-0000-0000-caa87760e53e",
"state": "available",
"tariff_description": {
"free_hours": "0.50",
"name": "Vauban Basic",
"eur_per_hour": "2.00",
"number": "5491",
"max_eur_per_day": "10.00",
"1001": {
"operator_agb": "Mit der Mietrad Anmietung wird folgender Betreiber <a href='https://shareeapp-fr01.copri.eu/site/agb.html'>AGB</a> zugestimmt (als Demo sharee AGB)."
}
}
}
},
"user_group": [
"FR300103",
"FR300101"
],
"apiserver": "https://shareeapp-fr01.copri.eu",
"user_tour": [],
"authcookie": "6103_112e96b36ba33de245943c5ffaf369cd_oiF2kahH",
"copri_version": "4.1.8.21",
"response_state": "OK, nothing todo",
"new_authcoo": "0",
"bike_info_html": "site/bike_info.html",
"debuglevel": "1",
"uri_primary": "https://shareeapp-primary.copri.eu"
}
}

View file

@ -0,0 +1,36 @@
{
"shareejson": {
"authcookie": "6103_112e96b36ba33de245943c5ffaf369cd_oiF2kahH",
"copri_version": "4.1.8.21",
"user_tour": [],
"user_group": [
"FR300103",
"FR300101"
],
"bikes_occupied": {
},
"apiserver": "https://shareeapp-fr01.copri.eu",
"uri_primary": "https://shareeapp-primary.copri.eu",
"debuglevel": "1",
"bike_info_html": "site/bike_info.html",
"new_authcoo": "0",
"response_state": "OK, nothing todo",
"last_used_operator": {
"operator_color": "#008dd2",
"operator_phone": "+49 089 / 111111111",
"operator_email": "hotline@lastenraddemo.bayern",
"operator_hours": "B<>rozeiten: Montag, Mittwoch, Freitag 9-12 Uhr",
"operator_name": "Lastenrad Bayern",
"operator_logo": ""
},
"lang": "DE",
"impress_html": "site/impress.html",
"tariff_info_html": "site/tariff_info_1.html",
"agb_html": "site/agb.html",
"response": "user_bikes_occupied",
"agb_checked": "1",
"privacy_html": "site/privacy.html",
"clearing_cache": "0",
"user_id": "ohauff@posteo.de"
}
}

File diff suppressed because it is too large Load diff