xiot-core-spec-ts
Version:
XIOT Specification Codec
64 lines (63 loc) • 2.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventOperationCodec = exports.EventOperationCodecResult = exports.EventOperationCodecQuery = void 0;
const Spec_1 = require("../../typedef/constant/Spec");
const AbstractOperationCodec_1 = require("./AbstractOperationCodec");
const EventOperation_1 = require("../../typedef/operation/EventOperation");
const EventID_1 = require("../../typedef/xid/EventID");
const ArgumentOperationCodec_1 = require("./ArgumentOperationCodec");
class EventOperationCodecQuery extends AbstractOperationCodec_1.AbstractOperationCodec {
decodeObject(o) {
const event = new EventOperation_1.EventOperation();
event.eid = EventID_1.EventID.parse(o[Spec_1.Spec.EID]);
event.oid = o[Spec_1.Spec.OID] || '';
if (o[Spec_1.Spec.ARGUMENTS] != null) {
if (o[Spec_1.Spec.ARGUMENTS] instanceof Array) {
event.setArguments(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeArray(o[Spec_1.Spec.ARGUMENTS]));
}
else {
event.argumentsCompact = true;
event.setArguments(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeObjet(o[Spec_1.Spec.ARGUMENTS]));
}
}
return event;
}
encodeObject(event) {
const object = {
eid: event.eid.toString(),
oid: event.oid
};
if (event.getArguments().length > 0) {
object[Spec_1.Spec.ARGUMENTS] = ArgumentOperationCodec_1.ArgumentOperationCodec.encodeArray(event.argumentsCompact, event.getArguments());
}
return object;
}
}
exports.EventOperationCodecQuery = EventOperationCodecQuery;
class EventOperationCodecResult extends AbstractOperationCodec_1.AbstractOperationCodec {
decodeObject(o) {
const event = new EventOperation_1.EventOperation();
event.eid = EventID_1.EventID.parse(o[Spec_1.Spec.EID]);
event.status = o[Spec_1.Spec.STATUS];
if (event.status !== 0) {
event.description = o[Spec_1.Spec.DESCRIPTION];
}
return event;
}
encodeObject(event) {
const object = {
eid: event.eid.toString(),
status: event.status
};
if (event.status !== 0) {
object.description = event.description;
}
return object;
}
}
exports.EventOperationCodecResult = EventOperationCodecResult;
class EventOperationCodec {
}
exports.EventOperationCodec = EventOperationCodec;
EventOperationCodec.Query = new EventOperationCodecQuery();
EventOperationCodec.Result = new EventOperationCodecResult();