@fabric-es/fabric-cqrs
Version:
Hyperledger Fabric middleware for event sourcing and cqrs pattern
64 lines • 2.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNetwork = void 0;
const util_1 = __importDefault(require("util"));
const fabric_network_1 = require("fabric-network");
const js_yaml_1 = require("js-yaml");
const utils_1 = require("../utils");
const getNetwork = async ({ enrollmentId, channelName, connectionProfile, wallet, eventHandlerStrategy = fabric_network_1.DefaultEventHandlerStrategies.MSPID_SCOPE_ALLFORTX, queryHandlerStrategy = fabric_network_1.DefaultQueryHandlerStrategies.MSPID_SCOPE_SINGLE, discovery, asLocalhost, }) => {
const logger = utils_1.getLogger({ name: '[fabric-cqrs] getNetwork.js' });
let identityExist;
try {
identityExist = await wallet.get(enrollmentId);
}
catch (e) {
logger.error(util_1.default.format('error in wallet, %j', e));
throw new Error(e);
}
if (!identityExist) {
logger.error('no enrollmentId in the wallet');
throw new Error('Please register user, before retrying');
}
if (!connectionProfile) {
logger.error('no connection profile provided');
throw new Error('No connection profile provided');
}
const gateway = new fabric_network_1.Gateway();
let network;
let cp;
try {
cp = await utils_1.promiseToReadFile(connectionProfile);
}
catch (err) {
logger.error(util_1.default.format('new gateway error: %j', err));
throw new Error(err);
}
const connect = (identity) => gateway.connect(js_yaml_1.safeLoad(cp), {
identity,
wallet,
discovery: { enabled: discovery, asLocalhost },
eventHandlerOptions: { strategy: eventHandlerStrategy },
queryHandlerOptions: { strategy: queryHandlerStrategy },
});
try {
await connect(enrollmentId);
}
catch (err) {
logger.error(util_1.default.format('%s connect gateway error: %j', enrollmentId, err));
throw new Error(err);
}
try {
network = await gateway.getNetwork(channelName);
}
catch (err) {
logger.error(util_1.default.format('%s getNetwork error: %j', channelName, err));
throw new Error(err);
}
logger.debug(util_1.default.format('gateway connected: %s', enrollmentId));
return { enrollmentId, gateway, network };
};
exports.getNetwork = getNetwork;
//# sourceMappingURL=network.js.map