2.0.1 • Published 1 month ago

zditm-szczecin-node-api-client v2.0.1

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
1 month ago

ZDiTM Szczecin - Node.js API client

Unofficial Node.js API client based on "Dla programistów" docs webpage.

APIs currently supported by this client

  • stops - Information about public transportation stops.
  • lines - Information about public transport lines.
  • trajectories - Information on the geographic routing of public transportation lines.
  • vehicles - Information on the current location of public transport vehicles.
  • displays - Information about the nearest departures from the public transport stop (virtual board).
  • timetable-change-descriptions - Information on recent and upcoming schedule changes.
  • ticket-offices - Ticket office information.
  • ticket-machines - Information about stationary ticket vending machines.

Getting started

Install with:

npm i zditm-szczecin-node-api-client

Then you can use it like this:

import {
  GenericClient,
  Displays,
  Vehicles,
  Stops,
  Lines,
} from "zditm-szczecin-node-api-client";

function showRateLimit(apiResponse: GenericClient) {
  console.log(
    `- Available requets rate limit ${apiResponse.availableRateLimit} (of ${apiResponse.rateLimit}) -`
  );
}

const displayApi = new Displays({ userAgent: "Nodejs-API-client-byOskar" });
const stopId = 30622;
displayApi.getDisplayData(stopId).then(({ stop_name, departures }) => {
  showRateLimit(displayApi);

  if (departures.length) {
    console.log(
      `From the ${stop_name} stop line ${departures[0].line_number} will soon depart.`
    );
  } else {
    console.log(`Nothing is going to depart from ${stop_name}.`);
  }
});

const vehiclesApi = new Vehicles({ apiVersion: "v1" });
vehiclesApi.getVehiclesData().then(({ data: [{ line_number, next_stop }] }) => {
  showRateLimit(vehiclesApi);

  console.log(`Vehicle ${line_number} travels to the ${next_stop}.`);
});

const stopsApi = new Stops();
stopsApi
  .getStopsData()
  .then(({ data: [{ number, name, latitude, longitude }] }) => {
    showRateLimit(stopsApi);

    console.log(
      `A stop ${name} (${number}) is located at ${latitude} ${longitude}.`
    );
  });

const linesApi = new Lines();
linesApi.getLinesData().then(({ data: [{ id, number, type }] }) => {
  showRateLimit(linesApi);

  console.log(
    `A line with id ${id} has number ${number} and its a type of ${type}.`
  );
});

Developing the package

Used node version v20.4.0.

To run the demo file:

git clone https://gitlab.com/rakso/zditm-szczecin-node-api-client.git
npm i
npm run demo
2.0.1

1 month ago

0.2.0

10 months ago

0.0.0

10 months ago

0.1.0

10 months ago

1.0.0-1cdb9daf

10 months ago

2.0.0

10 months ago

1.0.1

10 months ago

0.0.2

10 months ago

1.0.0

10 months ago

0.0.1

10 months ago