xiot-core-spec-ts
Version:
XIOT Specification Codec
97 lines (96 loc) • 3.11 kB
JavaScript
;
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;