public-transport / hafas-client

JavaScript client for HAFAS public transport APIs.
ISC License
269 stars 54 forks source link

Get db fares #297

Closed PaulSut closed 1 year ago

PaulSut commented 1 year ago

This PR enables to get the db fares (Super Sparpreis, Flexpreis...) with refreshJourney(tickets:true). I adjusted the output format, which leads to a breaking change for users of p/db.

Since this is my first PR to this repo I would be happy for a critical review :) I tried to follow the contributing guidelines, but several tests (which seem to be unrelated to my changes) are failing.

tickets for journeys() or refreshJourney(tickets:false) look like:

[
  {
    "name": "Zur Angebotsauswahl",
    "ticket": {
      "price": {
        "amount": 6590
      }
    }
  }
]

and for refreshJourney(tickets:true) look like:

[
  {
    "name": "Super Sparpreis",
    "ticket": {
      "addData": "eyJkaXIiOiJPVVRXQVJEIiwidHlwZSI6IlRJQ0tFVCIsIkZyb21UZXh0IjoiTcO8bmNoZW4gSGJmIiwiVG9UZXh0IjoiQmVybGluIEhiZiAodGllZikiLCJGcm9tRXZhIjoiODAwMDI2MSIsIlRvRXZhIjoiODA5ODE2MCJ9\r\n",
      "price": {
        "amount": 6590,
        "currency": "EUR"
      }
    }
  },
  {
    "name": "Sparpreis",
    "ticket": {
      "addData": "eyJkaXIiOiJPVVRXQVJEIiwidHlwZSI6IlRJQ0tFVCIsIkZyb21DaXR5IjoiTcO8bmNoZW4gSGJmIiwiVG9DaXR5IjoiQmVybGluIEhiZiAodGllZikiLCJGcm9tVGV4dCI6Ik3DvG5jaGVuIEhiZiIsIlRvVGV4dCI6IkJlcmxpbiBIYmYgKHRpZWYpIiwiRnJvbUV2YSI6IjgwMDAyNjEiLCJUb0V2YSI6IjgwOTgxNjAifQ==\r\n",
      "price": {
        "amount": 7490,
        "currency": "EUR"
      }
    }
  },
  {
    "name": "Super Sparpreis",
    "ticket": {
      "addData": "eyJkaXIiOiJPVVRXQVJEIiwidHlwZSI6IlRJQ0tFVCIsIkZyb21UZXh0IjoiTcO8bmNoZW4gSGJmIiwiVG9UZXh0IjoiQmVybGluIEhiZiAodGllZikiLCJGcm9tRXZhIjoiODAwMDI2MSIsIlRvRXZhIjoiODA5ODE2MCJ9\r\n",
      "price": {
        "amount": 7590,
        "currency": "EUR"
      }
    }
  },
  {
    "name": "Flexpreis",
    "ticket": {
      "addData": "eyJkaXIiOiJPVVRXQVJEIiwidHlwZSI6IlRJQ0tFVCIsIkZyb21DaXR5IjoiTcO8bmNoZW4gSGJmIiwiVG9DaXR5IjoiQmVybGluIEhiZiAodGllZikiLCJGcm9tVGV4dCI6Ik3DvG5jaGVuIEhiZiIsIlRvVGV4dCI6IkJlcmxpbiBIYmYgKHRpZWYpIiwiRnJvbUV2YSI6IjgwMDAyNjEiLCJUb0V2YSI6IjgwOTgxNjAifQ==\r\n",
      "price": {
        "amount": 17960,
        "currency": "EUR"
      }
    }
  },
  {
    "name": "Flexpreis Plus",
    "ticket": {
      "addData": "eyJkaXIiOiJPVVRXQVJEIiwidHlwZSI6IlRJQ0tFVCIsIkZyb21DaXR5IjoiTcO8bmNoZW4gSGJmIiwiVG9DaXR5IjoiQmVybGluIEhiZiAodGllZikiLCJGcm9tVGV4dCI6Ik3DvG5jaGVuIEhiZiIsIlRvVGV4dCI6IkJlcmxpbiBIYmYgKHRpZWYpIiwiRnJvbUV2YSI6IjgwMDAyNjEiLCJUb0V2YSI6IjgwOTgxNjAifQ==\r\n",
      "price": {
        "amount": 20610,
        "currency": "EUR"
      }
    }
  }
]
PaulSut commented 1 year ago

I will close this PR and incorporate the changes in a future PR since there will be likely more breaking changes regarding the output format. Rel