UNPKG

xiot-core-spec-ts

Version:
97 lines (96 loc) 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const EID_1 = require("../../typedef/xid/EID"); const Spec_1 = require("../../typedef/constant/Spec"); const ArgumentOperationCodec_1 = require("./ArgumentOperationCodec"); const EventOperation_1 = require("../../typedef/operation/EventOperation"); class EventOperationCodec { /** * query */ static decodeQuery(query) { if (query != null) { return EventOperationCodec.decodeQueryArray(query['events']); } return []; } static decodeQueryArray(array) { if (array != null) { return array.map(x => EventOperationCodec.decodeOneQuery(x)); } return []; } static decodeOneQuery(query) { const o = new EventOperation_1.EventOperation(); o.eid = EID_1.EID.parseString(query[Spec_1.Spec.EID]); o.setArguments(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeArray(query[Spec_1.Spec.ARGUMENTS])); return o; } static encodeQuery(actions) { return { actions: EventOperationCodec.encodeQueryArray(actions) }; } static encodeQueryArray(actions) { return actions.map(x => EventOperationCodec.encodeOneQuery(x)); } static encodeOneQuery(o) { const object = { eid: o.eid != null ? o.eid.toString() : '', }; if (o.oid !== '') { object[Spec_1.Spec.OID] = o.oid; } if (o.arguments.size > 0) { object[Spec_1.Spec.ARGUMENTS] = ArgumentOperationCodec_1.ArgumentOperationCodec.encodeArray(o.getArguments()); } return object; } /** * result */ static decodeResult(result) { if (result != null) { return EventOperationCodec.decodeResultArray(result['events']); } return []; } static decodeResultArray(array) { if (array != null) { return array.map(x => EventOperationCodec.decodeOneResult(x)); } return []; } static decodeOneResult(result) { const o = new EventOperation_1.EventOperation(); o.eid = EID_1.EID.parseString(result[Spec_1.Spec.EID]); o.oid = result[Spec_1.Spec.OID] || ''; o.status = result[Spec_1.Spec.STATUS]; if (o.status !== 0) { o.description = result[Spec_1.Spec.DESCRIPTION]; } return o; } static encodeResult(actions) { return { actions: EventOperationCodec.encodeResultArray(actions) }; } static encodeResultArray(actions) { return actions.map(x => EventOperationCodec.encodeOneResult(x)); } static encodeOneResult(o) { const object = { eid: o.eid != null ? o.eid.toString() : '', status: o.status }; if (o.oid !== '') { object[Spec_1.Spec.OID] = o.oid; } if (o.status !== 0) { object[Spec_1.Spec.DESCRIPTION] = o.description; } return object; } } exports.EventOperationCodec = EventOperationCodec;