UNPKG

diffusion

Version:

Diffusion JavaScript client

129 lines (128 loc) 5.09 kB
"use strict"; /** * @module Timeseries */ Object.defineProperty(exports, "__esModule", { value: true }); exports.TimeSeriesImpl = void 0; var range_query_impl_1 = require("./../../features/time-series/range-query-impl"); var Services = require("./../../services/time-series-services"); var time_series_append_request_1 = require("./../../services/timeseries/time-series-append-request"); var time_series_timestamp_append_request_1 = require("./../../services/timeseries/time-series-timestamp-append-request"); var require_non_null_1 = require("./../../util/require-non-null"); var Long = require("long"); /** * Implementation of the time series feature */ var TimeSeriesImpl = /** @class */ (function () { /** * Create a new TimeSeriesImpl instance * * @param internal the internal session */ function TimeSeriesImpl(internal) { this.internal = internal; var locator = internal.getServiceLocator(); this.defaultRangeQuery = range_query_impl_1.RangeQueryImpl.createDefault(locator.obtain(Services.rangeQueryFactory(internal.getContext().DataTypes))); this.appendService = locator.obtain(Services.TIME_SERIES_APPEND); this.appendTimestampService = locator.obtain(Services.TIME_SERIES_TIMESTAMP_APPEND); this.editService = locator.obtain(Services.TIME_SERIES_EDIT); } /** * @inheritdoc */ TimeSeriesImpl.prototype.rangeQuery = function () { return this.defaultRangeQuery; }; /** * @inheritdoc */ TimeSeriesImpl.prototype.edit = function (path, sequence, value, valueType) { var _this = this; // eslint-disable-next-line @typescript-eslint/naming-convention var DataTypes = this.internal.getContext().DataTypes; return new Promise(function (resolve, reject) { var datatype; var valueData; try { if (valueType instanceof _this.internal.getContext().AbstractDataType) { datatype = valueType; } else if (valueType) { datatype = DataTypes.getByClass(valueType); } else { datatype = DataTypes.getByValue(value); } require_non_null_1.requireNonNull(path, 'Path'); require_non_null_1.requireNonNull(value, 'Value'); require_non_null_1.requireNonNull(sequence, 'Sequence'); datatype = require_non_null_1.requireNonNull(datatype, 'Data type'); valueData = datatype.writeValueToArray(value); } catch (e) { reject(e); return; } _this.editService.send({ path: path, sequence: sequence, dataType: datatype, value: valueData }, function (err, metadata) { if (err) { reject(err); } else { resolve(metadata); } }); }); }; /** * @inheritdoc */ TimeSeriesImpl.prototype.append = function (path, value, valueType, timestamp) { var _this = this; // eslint-disable-next-line @typescript-eslint/naming-convention var DataTypes = this.internal.getContext().DataTypes; return new Promise(function (resolve, reject) { var datatype; var valueData; try { if (valueType instanceof _this.internal.getContext().AbstractDataType) { datatype = valueType; } else if (valueType) { datatype = DataTypes.getByClass(valueType); } else { datatype = DataTypes.getByValue(value); } require_non_null_1.requireNonNull(path, 'Path'); require_non_null_1.requireNonNull(value, 'Value'); datatype = require_non_null_1.requireNonNull(datatype, 'Data type'); valueData = datatype.writeValueToArray(value); } catch (e) { reject(e); return; } var responseCallback = function (err, metadata) { if (err) { reject(err); } else { resolve(metadata); } }; if (timestamp === undefined) { _this.appendService.send(new time_series_append_request_1.TimeSeriesAppendRequest(path, datatype, valueData), responseCallback); } else { _this.appendTimestampService.send(new time_series_timestamp_append_request_1.TimeSeriesTimestampAppendRequest(path, datatype, valueData, typeof timestamp === 'number' ? Long.fromNumber(timestamp) : timestamp), responseCallback); } }); }; return TimeSeriesImpl; }()); exports.TimeSeriesImpl = TimeSeriesImpl;