UNPKG

xiot-core-spec-ts

Version:
105 lines (104 loc) 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ActionOperation_1 = require("../../typedef/operation/ActionOperation"); const AID_1 = require("../../typedef/xid/AID"); const Spec_1 = require("../../typedef/constant/Spec"); const ArgumentOperationCodec_1 = require("./ArgumentOperationCodec"); class ActionOperationCodec { /** * query */ static decodeQuery(query) { if (query != null) { return ActionOperationCodec.decodeQueryArray(query['actions']); } return []; } static decodeQueryArray(array) { if (array != null) { return array.map(x => ActionOperationCodec.decodeOneQuery(x)); } return []; } static decodeOneQuery(query) { const o = new ActionOperation_1.ActionOperation(); o.aid = AID_1.AID.parseString(query[Spec_1.Spec.AID]); o.setArgumentsIn(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeArray(query[Spec_1.Spec.IN])); return o; } static encodeQuery(actions) { return { actions: ActionOperationCodec.encodeQueryArray(actions) }; } static encodeQueryArray(actions) { return actions.map(x => ActionOperationCodec.encodeOneQuery(x)); } static encodeOneQuery(action) { const object = { aid: action.aid != null ? 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.getArgumentsIn()); } return object; } /** * result */ static decodeResult(result) { if (result != null) { return ActionOperationCodec.decodeResultArray(result['actions']); } return []; } static decodeResultArray(array) { if (array != null) { return array.map(x => ActionOperationCodec.decodeOneResult(x)); } return []; } static decodeOneResult(result) { const o = new ActionOperation_1.ActionOperation(); o.aid = AID_1.AID.parseString(result[Spec_1.Spec.AID]); o.oid = result[Spec_1.Spec.OID] || ''; o.status = result[Spec_1.Spec.STATUS]; if (o.status === 0) { o.setArgumentsOut(ArgumentOperationCodec_1.ArgumentOperationCodec.decodeArray(result[Spec_1.Spec.OUT])); } else { o.description = result[Spec_1.Spec.DESCRIPTION]; } return o; } static encodeResult(actions) { return { actions: ActionOperationCodec.encodeResultArray(actions) }; } static encodeResultArray(actions) { return actions.map(x => ActionOperationCodec.encodeOneResult(x)); } static encodeOneResult(action) { const object = { aid: action.aid != null ? 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.getArgumentsOut()); } } else { object[Spec_1.Spec.DESCRIPTION] = action.description; } return object; } } exports.ActionOperationCodec = ActionOperationCodec;