lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
118 lines • 5.94 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 { Api } from "../../Api";
import { DataFrame, Method, Status } from "../../DataFrame";
import { ExalusConnectionService } from "../ExalusConnectionService";
import { ResponseResult } from "../FieldChangeResult";
import { UpsertConnectedAppResult } from "./IConnectedAppsService";
import { LoggerService } from "../Logging/LoggerService";
export class ConnectedAppsService {
constructor() {
this._connection = Api.Get(ExalusConnectionService.ServiceName);
this._log = Api.Get(LoggerService.ServiceName);
}
GetServiceName() {
return ConnectedAppsService.ServiceName;
}
IsSupportedAsync() {
return __awaiter(this, void 0, void 0, function* () {
let info = yield this._connection.SendAndWaitForResponseAsync(new CheckIfSupportedRequest(), 2000, true);
this._log.Debug(ConnectedAppsService.ServiceName, `IsSupportedAsync: ${info === null || info === void 0 ? void 0 : info.Status} resp: ${JSON.stringify(info)}`);
if (info == null)
return false;
else if (info.Status == Status.WrongData)
return true;
return false;
});
}
GetConnectedAppsAsync() {
return __awaiter(this, void 0, void 0, function* () {
let response = yield this._connection.SendAndWaitForResponseAsync(new GetConnectedAppsRequest(), 2000, true);
switch (response === null || response === void 0 ? void 0 : response.Status) {
case Status.OK:
return response === null || response === void 0 ? void 0 : response.Data;
default:
return response === null || response === void 0 ? void 0 : response.Status;
}
});
}
UpsertConnectedAppAsync(app) {
return __awaiter(this, void 0, void 0, function* () {
let response = yield this._connection.SendAndWaitForResponseAsync(new UpsertConnectedAppRequest(app), 2000, false);
switch (response === null || response === void 0 ? void 0 : response.Status) {
case Status.OK:
return new ResponseResult(UpsertConnectedAppResult.Changed, "");
case Status.WrongData:
switch (response.Data) {
case "AccessTokenToShort":
return new ResponseResult(UpsertConnectedAppResult.AccessTokenToShort, response.Data);
case "AnotherAppWithGivenAccessTokenAlreadyExists":
return new ResponseResult(UpsertConnectedAppResult.AnotherAppWithGivenAccessTokenAlreadyExists, response.Data);
case "AppGuidDoesNotExists":
return new ResponseResult(UpsertConnectedAppResult.AppGuidDoesNotExists, response.Data);
case "AppNameToShort":
return new ResponseResult(UpsertConnectedAppResult.AppNameToShort, response.Data);
case "AppUrlToShort":
return new ResponseResult(UpsertConnectedAppResult.AppUrlToShort, response.Data);
case "AppUserIdToShort":
return new ResponseResult(UpsertConnectedAppResult.AppUserIdToShort, response.Data);
case "AppUserNameToShort":
return new ResponseResult(UpsertConnectedAppResult.AppUserNameToShort, response.Data);
default:
return new ResponseResult(UpsertConnectedAppResult.UnkownError, response.Data);
}
case Status.ResourceDoesNotExists:
case Status.ResourceIsNotAvailable:
return new ResponseResult(UpsertConnectedAppResult.ResourceIsNotAvailable, response.Data);
default:
return new ResponseResult(UpsertConnectedAppResult.UnkownError, response.Data);
}
});
}
RemoveConnectedAppAsync(app) {
return __awaiter(this, void 0, void 0, function* () {
let response = yield this._connection.SendAndWaitForResponseAsync(new DeleteConnectedAppRequest(app.Guid), 2000, true);
return response === null || response === void 0 ? void 0 : response.Status;
});
}
}
ConnectedAppsService.ServiceName = "ConnectedAppsService";
class CheckIfSupportedRequest extends DataFrame {
constructor() {
super();
this.Resource = "/applications/app/auth";
this.Method = Method.Put;
this.Data = "";
}
}
class GetConnectedAppsRequest extends DataFrame {
constructor() {
super();
this.Resource = "/applications/get";
this.Method = Method.Get;
}
}
class DeleteConnectedAppRequest extends DataFrame {
constructor(appGuid) {
super();
this.Resource = "/applications/app/delete";
this.Method = Method.Delete;
this.Data = appGuid;
}
}
class UpsertConnectedAppRequest extends DataFrame {
constructor(app) {
super();
this.Resource = "/applications/app/upsert";
this.Method = Method.Put;
this.Data = app;
}
}
//# sourceMappingURL=ConnectedAppsService.js.map