Skip to content
Snippets Groups Projects

#664 Test JWK Generator

Merged Martin Vogel requested to merge feature/664-test-cert-generator into main
4 files
+ 44
31
Compare changes
  • Side-by-side
  • Inline
Files
4
package dev.fitko.fitconnect.cli;
import dev.fitko.fitconnect.api.config.ApplicationConfig;
import dev.fitko.fitconnect.api.domain.model.submission.SentSubmission;
import dev.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup;
import dev.fitko.fitconnect.api.exceptions.internal.BatchImportException;
@@ -17,9 +16,8 @@ import dev.fitko.fitconnect.cli.keygen.JWKPair;
import dev.fitko.fitconnect.cli.keygen.KeyWriter;
import dev.fitko.fitconnect.cli.keygen.KeyWriterSettings;
import dev.fitko.fitconnect.cli.util.AttachmentDataType;
import dev.fitko.fitconnect.client.SenderClient;
import dev.fitko.fitconnect.client.SubscriberClient;
import dev.fitko.fitconnect.client.bootstrap.ApplicationConfigLoader;
import dev.fitko.fitconnect.client.bootstrap.ClientFactory;
import dev.fitko.fitconnect.client.sender.model.Attachment;
import dev.fitko.fitconnect.client.sender.model.SendableSubmission;
import dev.fitko.fitconnect.client.subscriber.ReceivedSubmission;
@@ -36,6 +34,7 @@ import java.nio.file.Path;
import java.util.List;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -47,21 +46,22 @@ class CommandExecutor {
private static final String IMPORTED_RECORD_TEMPLATE = "\n\n================== Imported record {} ==================\n";
private static final String DEFAULT_CONFIG_NAME = "config.yml";
private final BatchImporter batchImporter;
private final JWKGenerator jwkGenerator;
private final Supplier<SenderClient> senderSupplier;
private final Supplier<SubscriberClient> subscriberSupplier;
CommandExecutor(final BatchImporter batchImporter, final JWKGenerator jwkGenerator) {
CommandExecutor(final Supplier<SenderClient> senderSupplier, final Supplier<SubscriberClient> subscriberSupplier, final BatchImporter batchImporter, final JWKGenerator jwkGenerator) {
this.batchImporter = batchImporter;
this.jwkGenerator = jwkGenerator;
this.senderSupplier = senderSupplier;
this.subscriberSupplier = subscriberSupplier;
}
void getOneSubmission(final GetOneSubmissionCommand getOneSubmissionCommand) throws IOException {
final SubscriberClient subscriberClient = ClientFactory.getSubscriberClient(loadConfig());
LOGGER.info("Getting submission for id {}", getOneSubmissionCommand.submissionId);
final var startTime = StopWatch.start();
final var submission = subscriberClient.requestSubmission(getOneSubmissionCommand.submissionId);
final var submission = subscriberSupplier.get().requestSubmission(getOneSubmissionCommand.submissionId);
LOGGER.info("Submission download took {}", StopWatch.stopWithFormattedTime(startTime));
if (submission == null) {
LOGGER.info("No submission found for submission id {}", getOneSubmissionCommand.submissionId);
@@ -72,10 +72,9 @@ class CommandExecutor {
}
void getAllSubmissions(final GetAllSubmissionsCommand getAllSubmissionsCommand) throws IOException {
final SubscriberClient subscriberClient = ClientFactory.getSubscriberClient(loadConfig());
final var destinationId = getAllSubmissionsCommand.destinationId;
LOGGER.info("Getting all available submissions for destination {}", destinationId);
final Set<SubmissionForPickup> submissions = subscriberClient.getAvailableSubmissionsForDestination(destinationId);
final Set<SubmissionForPickup> submissions = subscriberSupplier.get().getAvailableSubmissionsForDestination(destinationId);
for (final SubmissionForPickup submission : submissions) {
final GetOneSubmissionCommand getOneSubmissionCommand = new GetOneSubmissionCommand();
getOneSubmissionCommand.submissionId = submission.getSubmissionId();
@@ -85,10 +84,9 @@ class CommandExecutor {
}
void listSubmissions(final ListAllSubmissionsCommand listAllSubmissionsCommand) {
final SubscriberClient subscriberClient = ClientFactory.getSubscriberClient(loadConfig());
final var destinationId = listAllSubmissionsCommand.destinationId;
LOGGER.info("Listing available submissions for destination {}", destinationId);
for (final SubmissionForPickup submission : subscriberClient.getAvailableSubmissionsForDestination(destinationId)) {
for (final SubmissionForPickup submission : subscriberSupplier.get().getAvailableSubmissionsForDestination(destinationId)) {
LOGGER.info("caseId: {} - submissionId: {}", submission.getCaseId(), submission.getSubmissionId());
}
}
@@ -150,7 +148,7 @@ class CommandExecutor {
.addAttachments(attachments)
.build();
return ClientFactory.getSenderClient(loadConfig()).send(sendableSubmission);
return senderSupplier.get().send(sendableSubmission);
}
private SentSubmission sendWithXmlData(final SendSubmissionCommand sendSubmissionCommand, final List<Attachment> attachments) throws IOException {
@@ -162,7 +160,7 @@ class CommandExecutor {
.addAttachments(attachments)
.build();
return ClientFactory.getSenderClient(loadConfig()).send(sendableSubmission);
return senderSupplier.get().send(sendableSubmission);
}
private String getTargetFolderPath(final GetOneSubmissionCommand getOneSubmissionCommand) {
@@ -209,14 +207,4 @@ class CommandExecutor {
submission.setAttachments(Stream.of(importRecord.getAttachments().split(",")).map(String::trim).collect(Collectors.toList()));
return submission;
}
private ApplicationConfig loadConfig() {
try {
return ApplicationConfigLoader.loadConfigFromEnvironment();
} catch (final Exception e) {
LOGGER.info("Loading config from default location {}", DEFAULT_CONFIG_NAME);
return ApplicationConfigLoader.loadConfigFromPath(Path.of(DEFAULT_CONFIG_NAME));
}
}
}
Loading