trc-sheet
Version: 
trc sheet support
73 lines (72 loc) • 2.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var trcSheet = require("./sheet");
var PolygonHelper = (function () {
    function PolygonHelper(sheet) {
        this._name2id = null;
        this._sheet = sheet;
    }
    PolygonHelper.prototype.updatePolygonAsync = function (dataId, friendlyName, vertices) {
        var body = PolygonHelper.createDataRequest(friendlyName, vertices);
        return this._sheet.postCustomDataAsync(trcSheet.PolygonKind, dataId, body)
            .then(function (result) { return result.DataId; });
    };
    PolygonHelper.prototype.createPolygon = function (friendlyName, vertices) {
        return this.updatePolygonAsync("_", friendlyName, vertices);
    };
    PolygonHelper.polygonSchemaFromPoints = function (vertices) {
        var lat = [];
        var long = [];
        for (var i = 0; i < vertices.length; i++) {
            var v = vertices[i];
            lat.push(v.Lat);
            long.push(v.Long);
        }
        return {
            Lat: lat,
            Long: long
        };
    };
    PolygonHelper.createDataRequest = function (friendlyName, vertices) {
        var result = {
            FriendlyName: friendlyName,
            Etag: null,
            Value: PolygonHelper.polygonSchemaFromPoints(vertices)
        };
        return result;
    };
    PolygonHelper.prototype.getPolygonByIdAsync = function (dataId) {
        return this._sheet.getCustomDataAsync(trcSheet.PolygonKind, dataId).
            then(function (result) {
            return result.Value;
        });
    };
    PolygonHelper.prototype.lookupNameFromIdAsync = function (name) {
        var _this = this;
        if (this._name2id == null) {
            return this._sheet.listCustomDataAsync(trcSheet.PolygonKind).then(function (result) {
                _this._name2id = result;
                return _this.lookupNameFromIdWorkerAsync(name);
            });
        }
        else {
            return this.lookupNameFromIdWorkerAsync(name);
        }
    };
    PolygonHelper.prototype.lookupNameFromIdWorkerAsync = function (name) {
        var result = null;
        return this._name2id.ForEach(function (item) {
            if (item.Name == name) {
                result = item.DataId;
            }
        }).then(function () { return result; });
    };
    PolygonHelper.prototype.getPolygonByNameAsync = function (name) {
        var _this = this;
        return this.lookupNameFromIdAsync(name).then(function (dataId) {
            return _this.getPolygonByIdAsync(dataId);
        });
    };
    return PolygonHelper;
}());
exports.PolygonHelper = PolygonHelper;