mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-22 09:35:10 +00:00
refactor de vacuna
This commit is contained in:
parent
e3ab73be0c
commit
8693456d5d
2 changed files with 23 additions and 30 deletions
|
|
@ -98,7 +98,7 @@ public class RecetaService {
|
||||||
var network = gateway.getNetwork(config.getChannelName());
|
var network = gateway.getNetwork(config.getChannelName());
|
||||||
contract = network.getContract(config.getChaincodeName());
|
contract = network.getContract(config.getChaincodeName());
|
||||||
}
|
}
|
||||||
|
// crea dos recetas default, borrar cuando no se necesite
|
||||||
private void initLedger() throws EndorseException, SubmitException, CommitStatusException, CommitException {
|
private void initLedger() throws EndorseException, SubmitException, CommitStatusException, CommitException {
|
||||||
contract.submitTransaction("InitLedger");
|
contract.submitTransaction("InitLedger");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.code.hyperledger.services;
|
package com.code.hyperledger.services;
|
||||||
|
|
||||||
import com.code.hyperledger.models.Receta;
|
import com.code.hyperledger.configs.FabricConfigProperties;
|
||||||
import com.code.hyperledger.models.Vacuna;
|
import com.code.hyperledger.models.Vacuna;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
@ -9,17 +9,13 @@ import io.grpc.Grpc;
|
||||||
import io.grpc.ManagedChannel;
|
import io.grpc.ManagedChannel;
|
||||||
import io.grpc.TlsChannelCredentials;
|
import io.grpc.TlsChannelCredentials;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import com.code.hyperledger.models.VacunaDto;
|
|
||||||
|
|
||||||
import org.hyperledger.fabric.client.*;
|
import org.hyperledger.fabric.client.*;
|
||||||
import org.hyperledger.fabric.client.identity.*;
|
import org.hyperledger.fabric.client.identity.*;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.*;
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.security.InvalidKeyException;
|
import java.security.InvalidKeyException;
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -29,23 +25,15 @@ import java.util.concurrent.TimeUnit;
|
||||||
@Service
|
@Service
|
||||||
public class VacunaService {
|
public class VacunaService {
|
||||||
|
|
||||||
private static final String MSP_ID = System.getenv().getOrDefault("MSP_ID", "Org1MSP");
|
private final FabricConfigProperties config;
|
||||||
private static final String CHANNEL_NAME = System.getenv().getOrDefault("CHANNEL_NAME", "mychannel");
|
|
||||||
private static final String CHAINCODE_NAME = System.getenv().getOrDefault("CHAINCODE_NAME", "basic");
|
|
||||||
|
|
||||||
private static final Path CRYPTO_PATH = Paths
|
|
||||||
.get("../../test-network/organizations/peerOrganizations/org1.example.com");
|
|
||||||
private static final Path CERT_DIR_PATH = CRYPTO_PATH.resolve("users/User1@org1.example.com/msp/signcerts");
|
|
||||||
private static final Path KEY_DIR_PATH = CRYPTO_PATH.resolve("users/User1@org1.example.com/msp/keystore");
|
|
||||||
private static final Path TLS_CERT_PATH = CRYPTO_PATH.resolve("peers/peer0.org1.example.com/tls/ca.crt");
|
|
||||||
|
|
||||||
private static final String PEER_ENDPOINT = "localhost:7051";
|
|
||||||
private static final String OVERRIDE_AUTH = "peer0.org1.example.com";
|
|
||||||
|
|
||||||
private Contract contract;
|
private Contract contract;
|
||||||
private final Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
private final Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||||
|
|
||||||
private static Path getFirstFilePath(Path dirPath) throws IOException {
|
public VacunaService(FabricConfigProperties config) {
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Path getFirstFilePath(Path dirPath) throws IOException {
|
||||||
try (var keyFiles = Files.list(dirPath)) {
|
try (var keyFiles = Files.list(dirPath)) {
|
||||||
return keyFiles.findFirst().orElseThrow();
|
return keyFiles.findFirst().orElseThrow();
|
||||||
}
|
}
|
||||||
|
|
@ -70,34 +58,39 @@ public class VacunaService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ManagedChannel newGrpcConnection() throws IOException {
|
private ManagedChannel newGrpcConnection() throws IOException {
|
||||||
|
Path tlsPath = Paths.get(config.getCryptoPath(), config.getTlsCertPath());
|
||||||
var credentials = TlsChannelCredentials.newBuilder()
|
var credentials = TlsChannelCredentials.newBuilder()
|
||||||
.trustManager(TLS_CERT_PATH.toFile())
|
.trustManager(tlsPath.toFile())
|
||||||
.build();
|
.build();
|
||||||
return Grpc.newChannelBuilder(PEER_ENDPOINT, credentials)
|
return Grpc.newChannelBuilder(config.getPeerEndpoint(), credentials)
|
||||||
.overrideAuthority(OVERRIDE_AUTH)
|
.overrideAuthority(config.getOverrideAuth())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Identity newIdentity() throws IOException, CertificateException {
|
private Identity newIdentity() throws IOException, CertificateException {
|
||||||
try (var certReader = Files.newBufferedReader(getFirstFilePath(CERT_DIR_PATH))) {
|
Path certPath = Paths.get(config.getCryptoPath(), config.getCertPath());
|
||||||
|
try (var certReader = Files.newBufferedReader(getFirstFilePath(certPath))) {
|
||||||
var certificate = Identities.readX509Certificate(certReader);
|
var certificate = Identities.readX509Certificate(certReader);
|
||||||
return new X509Identity(MSP_ID, certificate);
|
return new X509Identity(config.getMspId(), certificate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Signer newSigner() throws IOException, InvalidKeyException {
|
private Signer newSigner() throws IOException, InvalidKeyException {
|
||||||
try (var keyReader = Files.newBufferedReader(getFirstFilePath(KEY_DIR_PATH))) {
|
Path keyPath = Paths.get(config.getCryptoPath(), config.getKeyPath());
|
||||||
|
try (var keyReader = Files.newBufferedReader(getFirstFilePath(keyPath))) {
|
||||||
var privateKey = Identities.readPrivateKey(keyReader);
|
var privateKey = Identities.readPrivateKey(keyReader);
|
||||||
return Signers.newPrivateKeySigner(privateKey);
|
return Signers.newPrivateKeySigner(privateKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setContract(final Gateway gateway) {
|
private void setContract(final Gateway gateway) {
|
||||||
var network = gateway.getNetwork(CHANNEL_NAME);
|
var network = gateway.getNetwork(config.getChannelName());
|
||||||
contract = network.getContract(CHAINCODE_NAME);
|
contract = network.getContract(config.getChaincodeName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Todos los métodos siguientes permanecen idénticos...
|
||||||
|
|
||||||
public void cargarVacuna(Vacuna vacuna)
|
public void cargarVacuna(Vacuna vacuna)
|
||||||
throws CommitStatusException, EndorseException, CommitException, SubmitException {
|
throws CommitStatusException, EndorseException, CommitException, SubmitException {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue