@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
99 lines • 13.8 kB
JavaScript
import { AppPathType, TapResponse } from '@iotize/tap';
import { InterfaceService } from '@iotize/tap/service/impl/interface';
import { TapnpassService } from '@iotize/tap/service/impl/tapnpass';
import { TargetService } from '@iotize/tap/service/impl/target';
export async function adpServiceGetAdpVersion() {
const response = await this.getStatus();
response.successful();
const data = await response.rawBody();
const version = data.slice(2, 5);
return {
major: version[0],
minor: version[1],
patch: version[2],
};
}
TapnpassService.prototype.getAdpVersion = adpServiceGetAdpVersion;
// export async function interfaceServiceGetAppType(this: InterfaceService): Promise<TapVersion>{
// let response: TapResponse<any> = await this.
// }
// InterfaceService.prototype.getAppType = interfaceServiceGetAppType;
export async function interfaceServiceGetAppPathResolved() {
const response = (await this.getAppPath());
if (response.isSuccessful()) {
let value = response.body();
if (value.length >= 3) {
const start = value.substring(0, 3);
const valueWithoutPrefix = value.substring(3);
switch (start) {
case AppPathType.PRIMER_CLOUD_WEB_APP_URL:
value = `https://user.cloud.iotize.com/users/${valueWithoutPrefix}`;
break;
case AppPathType.URL:
value = `${valueWithoutPrefix}`;
break;
case AppPathType.PRIMER_CLOUD_CONFIG_URL:
value = `https://user.cloud.iotize.com/users/${valueWithoutPrefix}`;
break;
}
}
response.setBody(value);
}
return response;
}
InterfaceService.prototype.getAppPathResolved =
interfaceServiceGetAppPathResolved;
export async function interfaceServiceGetConfigPath() {
const response = (await this.getAppPath());
if (response.isSuccessful()) {
let value = response.body();
const start = value.substr(0, 2);
switch (start) {
case '$5':
value = `http://user.cloud.iotize.com/users${value.substr(2)}`;
break;
default:
if (!value.endsWith('.json') &&
!value.endsWith('.xml') &&
!value.endsWith('.cloud')) {
value = '';
}
}
response.setBody(value);
}
return response;
}
InterfaceService.prototype.getConfigPath = interfaceServiceGetConfigPath;
// export async function targetServiceGetAppType(this: TargetService): Promise<TapResponse<string>> {
// let response = await this.getProtocol();
// let protocol = response.body();
// let newResponse: TapResponse<string> = TapResponse.SUCCESS();
// switch (protocol) {
// case TargetProtocol.SERIAL_VIA_TAPNPASS:
// newResponse.setBody("tapnpass");
// default:
// newResponse.setBody("tapnlink");
// }
// return newResponse;
// }
export async function targetServiceGetAppType() {
const response = await this.getSubProtocol();
const newResponse = TapResponse.SUCCESS();
if (response.isSuccessful()) {
newResponse.setBody('tapnpass');
}
else {
newResponse.setBody('tapnlink');
}
return newResponse;
}
TargetService.prototype.getAppType = targetServiceGetAppType;
// export async function isConnected(this: TargetService): Promise<TapResponse<boolean>> {
// return this._call({
// path: "/target/connect",
// methodType: "get",
// responseBodyDecoder: "boolean"
// })
// }
// TargetService.prototype.isConnected = isConnected;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNsaWVudC1leHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW90aXplLWlvbmljL3NyYy9saWIvZXh0ZW5zaW9ucy9kZXZpY2UtY2xpZW50LWV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWMsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9oRSxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QjtJQUczQyxNQUFNLFFBQVEsR0FBcUIsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUQsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE9BQU87UUFDTCxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNqQixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNqQixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVELGVBQWUsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLHVCQUF1QixDQUFDO0FBVWxFLGlHQUFpRztBQUNqRyxtREFBbUQ7QUFDbkQsSUFBSTtBQUVKLHNFQUFzRTtBQUV0RSxNQUFNLENBQUMsS0FBSyxVQUFVLGtDQUFrQztJQUd0RCxNQUFNLFFBQVEsR0FBd0IsQ0FBQyxN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TyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsdUJBQXVCLENBQUM7QUFFN0QsMEZBQTBGO0FBQzFGLDBCQUEwQjtBQUMxQixtQ0FBbUM7QUFDbkMsNkJBQTZCO0FBQzdCLHlDQUF5QztBQUN6QyxTQUFTO0FBQ1QsSUFBSTtBQUVKLHFEQUFxRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFBhdGhUeXBlLCBUYXBSZXNwb25zZSwgVGFwVmVyc2lvbiB9IGZyb20gJ0Bpb3RpemUvdGFwJztcbmltcG9ydCB7IEludGVyZmFjZVNlcnZpY2UgfSBmcm9tICdAaW90aXplL3RhcC9zZXJ2aWNlL2ltcGwvaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhcG5wYXNzU2VydmljZSB9IGZyb20gJ0Bpb3RpemUvdGFwL3NlcnZpY2UvaW1wbC90YXBucGFzcyc7XG5pbXBvcnQgeyBUYXJnZXRTZXJ2aWNlIH0gZnJvbSAnQGlvdGl6ZS90YXAvc2VydmljZS9pbXBsL3RhcmdldCc7XG5cbmRlY2xhcmUgbW9kdWxlICdAaW90aXplL3RhcC9zZXJ2aWNlL2ltcGwvdGFwbnBhc3MvbGliL2dlbmVyYXRlZC9zZXJ2aWNlJyB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgVGFwbnBhc3NTZXJ2aWNlIHtcbiAgICBnZXRBZHBWZXJzaW9uKCk6IFByb21pc2U8VGFwVmVyc2lvbj47XG4gIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZHBTZXJ2aWNlR2V0QWRwVmVyc2lvbihcbiAgdGhpczogVGFwbnBhc3NTZXJ2aWNlXG4pOiBQcm9taXNlPFRhcFZlcnNpb24+IHtcbiAgY29uc3QgcmVzcG9uc2U6IFRhcFJlc3BvbnNlPGFueT4gPSBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xuICByZXNwb25zZS5zdWNjZXNzZnVsKCk7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5yYXdCb2R5KCk7XG4gIGNvbnN0IHZlcnNpb24gPSBkYXRhLnNsaWNlKDIsIDUpO1xuICByZXR1cm4ge1xuICAgIG1ham9yOiB2ZXJzaW9uWzBdLFxuICAgIG1pbm9yOiB2ZXJzaW9uWzFdLFxuICAgIHBhdGNoOiB2ZXJzaW9uWzJdLFxuICB9O1xufVxuXG5UYXBucGFzc1NlcnZpY2UucHJvdG90eXBlLmdldEFkcFZlcnNpb24gPSBhZHBTZXJ2aWNlR2V0QWRwVmVyc2lvbjtcblxuZGVjbGFyZSBtb2R1bGUgJ0Bpb3RpemUvdGFwL3NlcnZpY2UvaW1wbC9pbnRlcmZhY2UvbGliL2dlbmVyYXRlZC9zZXJ2aWNlJyB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlU2VydmljZSB7XG4gICAgZ2V0QXBwUGF0aFJlc29sdmVkKCk6IFByb21pc2U8VGFwUmVzcG9uc2U8c3RyaW5nPj47XG5cbiAgICBnZXRDb25maWdQYXRoKCk6IFByb21pc2U8VGFwUmVzcG9uc2U8c3RyaW5nPj47XG4gIH1cbn1cblxuLy8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGludGVyZmFjZVNlcnZpY2VHZXRBcHBUeXBlKHRoaXM6IEludGVyZmFjZVNlcnZpY2UpOiBQcm9taXNlPFRhcFZlcnNpb24+e1xuLy8gICAgIGxldCByZXNwb25zZTogVGFwUmVzcG9uc2U8YW55PiA9IGF3YWl0IHRoaXMuXG4vLyB9XG5cbi8vIEludGVyZmFjZVNlcnZpY2UucHJvdG90eXBlLmdldEFwcFR5cGUgPSBpbnRlcmZhY2VTZXJ2aWNlR2V0QXBwVHlwZTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGludGVyZmFjZVNlcnZpY2VHZXRBcHBQYXRoUmVzb2x2ZWQoXG4gIHRoaXM6IEludGVyZmFjZVNlcnZpY2Vcbik6IFByb21pc2U8VGFwUmVzcG9uc2U8c3RyaW5nPj4ge1xuICBjb25zdCByZXNwb25zZTogVGFwUmVzcG9uc2U8c3RyaW5nPiA9IChhd2FpdCB0aGlzLmdldEFwcFBhdGgoKSkgYXMgYW55O1xuICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICBsZXQgdmFsdWUgPSByZXNwb25zZS5ib2R5KCk7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+PSAzKSB7XG4gICAgICBjb25zdCBzdGFydCA9IHZhbHVlLnN1YnN0cmluZygwLCAzKTtcbiAgICAgIGNvbnN0IHZhbHVlV2l0aG91dFByZWZpeCA9IHZhbHVlLnN1YnN0cmluZygzKTtcbiAgICAgIHN3aXRjaCAoc3RhcnQpIHtcbiAgICAgICAgY2FzZSBBcHBQYXRoVHlwZS5QUklNRVJfQ0xPVURfV0VCX0FQUF9VUkw6XG4gICAgICAgICAgdmFsdWUgPSBgaHR0cHM6Ly91c2VyLmNsb3VkLmlvdGl6ZS5jb20vdXNlcnMvJHt2YWx1ZVdpdGhvdXRQcmVmaXh9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBBcHBQYXRoVHlwZS5VUkw6XG4gICAgICAgICAgdmFsdWUgPSBgJHt2YWx1ZVdpdGhvdXRQcmVmaXh9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBBcHBQYXRoVHlwZS5QUklNRVJfQ0xPVURfQ09ORklHX1VSTDpcbiAgICAgICAgICB2YWx1ZSA9IGBodHRwczovL3VzZXIuY2xvdWQuaW90aXplLmNvbS91c2Vycy8ke3ZhbHVlV2l0aG91dFByZWZpeH1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXNwb25zZS5zZXRCb2R5KHZhbHVlKTtcbiAgfVxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbkludGVyZmFjZVNlcnZpY2UucHJvdG90eXBlLmdldEFwcFBhdGhSZXNvbHZlZCA9XG4gIGludGVyZmFjZVNlcnZpY2VHZXRBcHBQYXRoUmVzb2x2ZWQ7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnRlcmZhY2VTZXJ2aWNlR2V0Q29uZmlnUGF0aChcbiAgdGhpczogSW50ZXJmYWNlU2VydmljZVxuKTogUHJvbWlzZTxUYXBSZXNwb25zZTxzdHJpbmc+PiB7XG4gIGNvbnN0IHJlc3BvbnNlOiBUYXBSZXNwb25zZTxzdHJpbmc+ID1cbiAgICAoYXdhaXQgdGhpcy5nZXRBcHBQYXRoKCkpIGFzIFRhcFJlc3BvbnNlPHN0cmluZz47XG4gIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgIGxldCB2YWx1ZSA9IHJlc3BvbnNlLmJvZHkoKTtcbiAgICBjb25zdCBzdGFydCA9IHZhbHVlLnN1YnN0cigwLCAyKTtcbiAgICBzd2l0Y2ggKHN0YXJ0KSB7XG4gICAgICBjYXNlICckNSc6XG4gICAgICAgIHZhbHVlID0gYGh0dHA6Ly91c2VyLmNsb3VkLmlvdGl6ZS5jb20vdXNlcnMke3ZhbHVlLnN1YnN0cigyKX1gO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhdmFsdWUuZW5kc1dpdGgoJy5qc29uJykgJiZcbiAgICAgICAgICAhdmFsdWUuZW5kc1dpdGgoJy54bWwnKSAmJlxuICAgICAgICAgICF2YWx1ZS5lbmRzV2l0aCgnLmNsb3VkJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXNwb25zZS5zZXRCb2R5KHZhbHVlKTtcbiAgfVxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbkludGVyZmFjZVNlcnZpY2UucHJvdG90eXBlLmdldENvbmZpZ1BhdGggPSBpbnRlcmZhY2VTZXJ2aWNlR2V0Q29uZmlnUGF0aDtcblxuZGVjbGFyZSBtb2R1bGUgJ0Bpb3RpemUvdGFwL3NlcnZpY2UvaW1wbC90YXJnZXQvbGliL2dlbmVyYXRlZC9zZXJ2aWNlJyB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0U2VydmljZSB7XG4gICAgZ2V0QXBwVHlwZSgpOiBQcm9taXNlPFRhcFJlc3BvbnNlPHN0cmluZz4+O1xuICB9XG59XG5cbi8vIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0YXJnZXRTZXJ2aWNlR2V0QXBwVHlwZSh0aGlzOiBUYXJnZXRTZXJ2aWNlKTogUHJvbWlzZTxUYXBSZXNwb25zZTxzdHJpbmc+PiB7XG4vLyAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5nZXRQcm90b2NvbCgpO1xuLy8gICAgIGxldCBwcm90b2NvbCA9IHJlc3BvbnNlLmJvZHkoKTtcbi8vICAgICBsZXQgbmV3UmVzcG9uc2U6IFRhcFJlc3BvbnNlPHN0cmluZz4gPSBUYXBSZXNwb25zZS5TVUNDRVNTKCk7XG4vLyAgICAgc3dpdGNoIChwcm90b2NvbCkge1xuLy8gICAgICAgICBjYXNlIFRhcmdldFByb3RvY29sLlNFUklBTF9WSUFfVEFQTlBBU1M6XG4vLyAgICAgICAgICAgICBuZXdSZXNwb25zZS5zZXRCb2R5KFwidGFwbnBhc3NcIik7XG4vLyAgICAgICAgIGRlZmF1bHQ6XG4vLyAgICAgICAgICAgICBuZXdSZXNwb25zZS5zZXRCb2R5KFwidGFwbmxpbmtcIik7XG4vLyAgICAgfVxuLy8gICAgIHJldHVybiBuZXdSZXNwb25zZTtcbi8vIH1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRhcmdldFNlcnZpY2VHZXRBcHBUeXBlKFxuICB0aGlzOiBUYXJnZXRTZXJ2aWNlXG4pOiBQcm9taXNlPFRhcFJlc3BvbnNlPHN0cmluZz4+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldFN1YlByb3RvY29sKCk7XG4gIGNvbnN0IG5ld1Jlc3BvbnNlOiBUYXBSZXNwb25zZTxzdHJpbmc+ID0gVGFwUmVzcG9uc2UuU1VDQ0VTUygpO1xuICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICBuZXdSZXNwb25zZS5zZXRCb2R5KCd0YXBucGFzcycpO1xuICB9IGVsc2Uge1xuICAgIG5ld1Jlc3BvbnNlLnNldEJvZHkoJ3RhcG5saW5rJyk7XG4gIH1cbiAgcmV0dXJuIG5ld1Jlc3BvbnNlO1xufVxuXG5UYXJnZXRTZXJ2aWNlLnByb3RvdHlwZS5nZXRBcHBUeXBlID0gdGFyZ2V0U2VydmljZUdldEFwcFR5cGU7XG5cbi8vIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0Nvbm5lY3RlZCh0aGlzOiBUYXJnZXRTZXJ2aWNlKTogUHJvbWlzZTxUYXBSZXNwb25zZTxib29sZWFuPj4ge1xuLy8gICAgIHJldHVybiB0aGlzLl9jYWxsKHtcbi8vICAgICAgICAgcGF0aDogXCIvdGFyZ2V0L2Nvbm5lY3RcIixcbi8vICAgICAgICAgbWV0aG9kVHlwZTogXCJnZXRcIixcbi8vICAgICAgICAgcmVzcG9uc2VCb2R5RGVjb2RlcjogXCJib29sZWFuXCJcbi8vICAgICB9KVxuLy8gfVxuXG4vLyBUYXJnZXRTZXJ2aWNlLnByb3RvdHlwZS5pc0Nvbm5lY3RlZCA9IGlzQ29ubmVjdGVkO1xuIl19