Farmbot-Web-App/webpack/device.ts

25 lines
723 B
TypeScript
Raw Normal View History

2017-06-29 12:54:02 -06:00
import { Farmbot } from "farmbot";
2017-10-10 11:59:08 -06:00
import { bail } from "./util";
import { set } from "lodash";
import { AuthState } from "./auth/interfaces";
import { maybeRefreshToken } from "./refresh_token";
2017-06-29 12:54:02 -06:00
2017-10-10 11:59:08 -06:00
let device: Farmbot;
2017-06-29 12:54:02 -06:00
const secure = location.protocol === "https:"; // :(
2017-10-10 11:59:08 -06:00
export const getDevice = (): Farmbot => (device || bail("NO DEVICE SET"));
2017-06-29 12:54:02 -06:00
export function fetchNewDevice(oldToken: AuthState): Promise<Farmbot> {
return maybeRefreshToken(oldToken)
.then(({ token }) => {
device = new Farmbot({ token: token.encoded, secure });
set(window, "current_bot", device);
2017-10-10 15:50:57 -06:00
return device
.connect()
.then(() => {
return device;
}, () => bail("NO CONNECT"));
});
2017-10-10 11:59:08 -06:00
}