UNPKG

xiot-core-spec-ts

Version:
85 lines (84 loc) 3.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActionOperationCodec = exports.ActionOperationCodecResult = exports.ActionOperationCodecQuery = void 0; const ActionOperation_1 = require("../../typedef/operation/ActionOperation"); const AbstractOperationCodec_1 = require("./AbstractOperationCodec"); const ActionID_1 = require("../../typedef/xid/ActionID"); const Spec_1 = require("../../typedef/constant/Spec"); const ArgumentOperationCodec_1 = require("./ArgumentOperationCodec"); class ActionOperationCodecQuery extends AbstractOperationCodec_1.AbstractOperationCodec { decodeObject(o) { const action = new ActionOperation_1.ActionOperation(); action.aid = ActionID_1.ActionID.parse(o[Spec_1.Spec.AID]); if (o[Spec_1.Spec.IN] != null) { if (o[Spec_1.Spec.IN] instanceof Array) { action.setArgumentsIn(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeArray(o[Spec_1.Spec.IN])); } else { action.argumentsCompact = true; action.setArgumentsIn(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeObjet(o[Spec_1.Spec.IN])); } } return action; } encodeObject(action) { const object = { aid: action.aid.toString() }; if (action.oid !== '') { object[Spec_1.Spec.OID] = action.oid; } if (action.in.size > 0) { object[Spec_1.Spec.IN] = ArgumentOperationCodec_1.ArgumentOperationCodec.encodeArray(action.argumentsCompact, action.getArgumentsIn()); } return object; } } exports.ActionOperationCodecQuery = ActionOperationCodecQuery; class ActionOperationCodecResult extends AbstractOperationCodec_1.AbstractOperationCodec { decodeObject(o) { const action = new ActionOperation_1.ActionOperation(); action.aid = ActionID_1.ActionID.parse(o[Spec_1.Spec.AID]); action.oid = o[Spec_1.Spec.OID] || ''; action.status = o[Spec_1.Spec.STATUS]; if (action.status === 0) { if (o[Spec_1.Spec.OUT] != null) { if (o[Spec_1.Spec.OUT] instanceof Array) { action.setArgumentsOut(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeArray(o[Spec_1.Spec.OUT])); } else { action.argumentsCompact = true; action.setArgumentsOut(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeObjet(o[Spec_1.Spec.OUT])); } } } else { action.description = o[Spec_1.Spec.DESCRIPTION]; } return action; } encodeObject(action) { const object = { aid: action.aid.toString(), status: action.status }; if (action.oid !== '') { object[Spec_1.Spec.OID] = action.oid; } if (action.status === 0) { if (action.out.size > 0) { object[Spec_1.Spec.OUT] = ArgumentOperationCodec_1.ArgumentOperationCodec.encodeArray(action.argumentsCompact, action.getArgumentsOut()); } } else { object[Spec_1.Spec.DESCRIPTION] = action.description; } return object; } } exports.ActionOperationCodecResult = ActionOperationCodecResult; class ActionOperationCodec { } exports.ActionOperationCodec = ActionOperationCodec; ActionOperationCodec.Query = new ActionOperationCodecQuery(); ActionOperationCodec.Result = new ActionOperationCodecResult();