@chevre/domain
Version:
Chevre Domain Library for Node.js
55 lines (54 loc) • 2.81 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPotentialActions = createPotentialActions;
const factory = require("../../../factory");
function createMoneyTransferActions(params) {
const moneyTransferActions = [];
const authorizeMoneyTransferActions = params.authorizeActions
.filter((a) => a.object.typeOf === factory.offerType.Offer)
.filter((a) => { var _a; return ((_a = a.object.itemOffered) === null || _a === void 0 ? void 0 : _a.typeOf) === factory.actionType.MoneyTransfer; });
authorizeMoneyTransferActions.forEach((a) => {
var _a;
const actionResult = a.result;
const pendingTransaction = (_a = a.object.itemOffered.object) === null || _a === void 0 ? void 0 : _a.pendingTransaction;
if (actionResult !== undefined && pendingTransaction !== undefined) {
moneyTransferActions.push({
project: params.transaction.project,
typeOf: factory.actionType.ConfirmAction,
object: {
// pendingTransaction: { id: actionResult.responseBody.id },
transactionNumber: pendingTransaction.transactionNumber,
typeOf: factory.assetTransactionType.MoneyTransfer
},
agent: params.transaction.project,
purpose: { typeOf: params.transaction.typeOf, id: params.transaction.id }
});
}
});
return moneyTransferActions;
}
/**
* 取引のポストアクションを作成する
*/
function createPotentialActions(params) {
return __awaiter(this, void 0, void 0, function* () {
// 通貨転送アクション属性作成
const moneyTransferActionAttributesList = createMoneyTransferActions(params);
// まずは1転送アクションのみ対応
if (moneyTransferActionAttributesList.length !== 1) {
throw new factory.errors.Argument('Transaction', 'Number of moneyTransfer actions must be 1');
}
return {
moneyTransfer: moneyTransferActionAttributesList
};
});
}
;