1.1.6 • Published 2 months ago

warmup-api v1.1.6

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 months ago

warmup-api

An API for communicating with a wifi-enabled home thermostat made by Warmup.

Coverage Badge

Using this library

Installation

Install with:

npm install --save warmup-api

Usage

Currently, there are only a couple of pieces of functionality available: getting an access token and calling the GraphQL endpoint.

import { getToken, makeGQLQuery } from 'warmup-api';

const token = await getToken('email', 'password'); // Email and password from the user's my.warmup.com account
const getUserProfileQuery = {
  operationName: "getUserProfile",
  query: "query getUserProfile {\n  user {\n    userProfile {\n      email\n      firstName\n      lastName\n    }\n  }\n}",
  variables: null
};
const { data: { user: { userProfile } } } = await makeGQLQuery(getUserProfileQuery, token);
console.log(userProfile.email, userProfile.firstName, userProfile.lastName );

The full Warmup GraphQL schema can be found ./warmup-schema.graphql.

Developing

Regenerating the schema

The schema, located at ./warmup-schema.graphql can be regenerated at any time by running (using Node >= 20.x):

npm run create-warmup-schema

This requires the following in a .env file which you will need to create:

USERNAME=""
PASSWORD=""
AUTH_TOKEN=""

See the first query in ./http-requests.http for how to obtain an auth token.

Testing

Run the tests with the usual command:

npm test

This will run the tests with a coverage report (requires 100% across the board to pass), which you can view with:

open coverage/lcov-report/index.html
1.1.6

2 months ago

1.1.4

2 months ago

1.1.3

2 months ago

1.1.1

2 months ago

1.1.0

2 months ago

1.0.0

2 months ago

0.0.8

2 months ago

0.0.7

2 months ago

0.0.5

2 months ago

0.0.6

2 months ago

0.0.3

3 months ago

0.0.2

3 months ago

0.0.1

3 months ago