/node-wind

API Wrapper for Wind bikes & scooters

Primary LanguageJavaScript

node-wind

An API for Wind bikes and boards

_Do you need a paid license ? https://jzarca01.github.io/contact

Usage

const Wind = require('node-wind');
const wind = new Wind({
  licenseFilePath: './license_files/file.lic', // relative path to the root of the project
  licenseFile, // if you prefer to specify the raw content of the license file
  options = {}
});

How to use options

const Wind = require('node-wind');
const wind = new Wind({
  timeout: 3000000000,
  headers: {
    'User-Agent': 'Nintendo 64',
    'Device-id': 'your_own_uuid',
    Platform: 'ios',
    'App-Version': 'the latest version'
  }
  ...whatever you need to add
});

For a cool example, see example/index.js

How to Log in

The authentication process is handled by Firebase, which relies on ReCAPTCHA whose implementation is only client-side Consequently, in order to implement this API you need to have a client-side part

For a cool example, run :

node example/client/index.js

and browse to http://localhost:8080/index.html

Then, once you have your Firebase token you can use it with this API For a cool example, see example/index.js

Methods

Login

await wind.login(firebaseToken, (region = "fr"));

Get boards (scooters) nearby

await wind.getBoardsNearby({
  latitude,
  longitude
});

Get bikes nearby

await wind.getBikesNearby({
  latitude,
  longitude
});

Get parking ports nearby

await wind.getParkingPortsNearby({
  latitude,
  longitude
});

Get operating countries

await wind.getOperatingCountries();

Get operating areas

await wind.getOperatingAreas();

Add card to account

await wind.addCard({ cardNumber, expMonth, expYear, cardCvc });

Delete card from account

await wind.deleteCard();

Get user

await wind.getUser();

Update profile

await wind.updateProfile({
  firstName,
  lastName,
  email,
  region
});

Add driver license

await wind.addDriverLicense({
  firstName,
  lastName,
  licenseNumber
});

Get ride history

await wind.getHistory()

Get scooter

await wind.getScooter(boardNo, {latitude longitude})
// boardNo: S0024524

Set alarm

await wind.setAlarm(boardId, { latitude, longitude })

Unlock scooter

await wind.unlockScooter(boardId, { latitude, longitude })
/// boardId: "ef662f60-ade0-4022-ac5d-eae6cd0210ba"

Get ONGOING ride status

await wind.getRideStatus({latitude, longitude})

End ride

await wind.endRide({ latitude, longitude, finalPhoto = "https://..." })

Send ONGOING ride waypoint

await wind.sendRideWaypoint({ latitude, longitude })

Send plain records

await wind.sendPlainRecords(
    { latitude, longitude },
    eventType = "mainActivityEnter"
  )