eightsleep
Version:
eightsleep api client
84 lines • 3.65 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import ApiClient from 'simple-api-client';
import validateDeviceStatus from './validateDeviceStatus';
export var Sides;
(function (Sides) {
Sides["SOLO"] = "solo";
Sides["LEFT"] = "left";
Sides["RIGHT"] = "right";
})(Sides || (Sides = {}));
export class EightSleepAppApi extends ApiClient {
constructor({ clientApi, defaultInit }) {
super('https://app-api.8slp.net', (path, init) => __awaiter(this, void 0, void 0, function* () {
const [userId, token] = yield Promise.all([
this.userId(),
this.oauthToken(),
]);
return Object.assign(Object.assign(Object.assign({}, defaultInit), init), { headers: Object.assign(Object.assign(Object.assign({}, defaultInit.headers), { 'user-id': userId, authorization: `Bearer ${token}` }), init === null || init === void 0 ? void 0 : init.headers) });
}));
this.clientApi = clientApi;
}
userId() {
return __awaiter(this, void 0, void 0, function* () {
const session = yield this.clientApi.login();
return session.userId;
});
}
oauthToken() {
return __awaiter(this, void 0, void 0, function* () {
const oauthSession = yield this.clientApi.oauth();
return oauthSession.accessToken;
});
}
getDeviceStatus(deviceId, query) {
return __awaiter(this, void 0, void 0, function* () {
const path = `v2/smart_temperature/status/${deviceId}`;
const status = yield this.json(path, 200, {
query,
});
return validateDeviceStatus(status);
});
}
setDeviceSideOff(deviceId, side, query) {
return __awaiter(this, void 0, void 0, function* () {
const path = `v2/manual_temperature/${deviceId}/sides/${side}/toggle/off`;
const init = {
method: 'PUT',
query,
};
const status = yield this.json(path, 200, init);
return validateDeviceStatus(status);
});
}
setDeviceSideOn(deviceId, side, query) {
return __awaiter(this, void 0, void 0, function* () {
const path = `v2/manual_temperature/${deviceId}/sides/${side}/toggle/on`;
const init = {
method: 'PUT',
query,
};
const status = yield this.json(path, 200, init);
return validateDeviceStatus(status);
});
}
setDeviceSideLevel(deviceId, side, level, query) {
return __awaiter(this, void 0, void 0, function* () {
const path = `v2/manual_temperature/${deviceId}/sides/${side}/level/${level}`;
const init = {
method: 'PUT',
query,
};
const status = yield this.json(path, 200, init);
return validateDeviceStatus(status);
});
}
}
//# sourceMappingURL=EightSleepAppApi.js.map