eightsleep
Version:
eightsleep api client
91 lines • 4.09 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());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EightSleepAppApi = exports.Sides = void 0;
const simple_api_client_1 = __importDefault(require("simple-api-client"));
const validateDeviceStatus_1 = __importDefault(require("./validateDeviceStatus"));
var Sides;
(function (Sides) {
Sides["SOLO"] = "solo";
Sides["LEFT"] = "left";
Sides["RIGHT"] = "right";
})(Sides = exports.Sides || (exports.Sides = {}));
class EightSleepAppApi extends simple_api_client_1.default {
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_1.default(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_1.default(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_1.default(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_1.default(status);
});
}
}
exports.EightSleepAppApi = EightSleepAppApi;
//# sourceMappingURL=EightSleepAppApi.js.map