in FlywayLambdaService/src/main/java/com/geekoosh/flyway/FlywayHandler.java [23:66]
public Response handleRequest(Request input, Context context) {
MigrationFilesService migrationFilesService = null;
try {
GitRequest gitRequest = GitRequest.build(input.getGitRequest());
S3Request s3Request = S3Request.build(input.getS3Request());
DBRequest dbRequest = DBRequest.build(input.getDbRequest());
FlywayRequest flywayRequest = FlywayRequest.build(input.getFlywayRequest());
GitService gitService = gitService(gitRequest);
S3Service s3Service = new S3Service(
s3Request.getBucket(),
s3Request.getFolder()
);
if (s3Service.isValid()) {
migrationFilesService = s3Service;
} else if (gitService.isValid()) {
migrationFilesService = gitService;
}
if(migrationFilesService != null) {
migrationFilesService.prepare();
}
FlywayService flywayService = new FlywayService(flywayRequest, dbRequest, migrationFilesService);
Response response = new Response(flywayService.call());
response.log();
return response;
} catch(Exception e) {
logger.error(e.getMessage(), e);
throw new RuntimeException(e);
} finally {
if(migrationFilesService != null) try {
migrationFilesService.clean();
} catch (MigrationFilesException e) {
logger.error(e.getMessage(), e);
throw new RuntimeException(e);
}
}
}