Skip to content

Commit cba784c

Browse files
committed
Load database config from environment
1 parent 9fa7938 commit cba784c

File tree

11 files changed

+76
-77
lines changed

11 files changed

+76
-77
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ out/
1010
*.iws
1111
.project
1212
.settings
13-
.classpath
13+
.classpath
14+
src/main/resources/application.yml

buildSrc/src/main/groovy/dwbh/gradle/FixturesPlugin.groovy

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,33 @@ class FixturesPlugin implements Plugin<Project> {
4949

5050
project.afterEvaluate {
5151
FixturesExtension extension = project
52-
.extensions
53-
.getByType(FixturesExtension)
52+
.extensions
53+
.getByType(FixturesExtension)
5454

5555
File configFile = Optional
56-
.ofNullable(extension.configFile)
57-
.map { project.file(it) }
58-
.orElse(DEFAULT_CONFIG_FILE)
56+
.ofNullable(extension.configFile)
57+
.map { project.file(it) }
58+
.orElse(DEFAULT_CONFIG_FILE)
5959

6060
File loadDir = Optional
61-
.ofNullable(extension.loadDir)
62-
.map { project.file(it) }
63-
.orElse(DEFAULT_LOAD_DIR)
61+
.ofNullable(extension.loadDir)
62+
.map { project.file(it) }
63+
.orElse(DEFAULT_LOAD_DIR)
6464

6565
File cleanDir = Optional.ofNullable(extension.cleanDir)
66-
.map { project.file(it) }
67-
.orElse(DEFAULT_CLEAN_DIR)
66+
.map { project.file(it) }
67+
.orElse(DEFAULT_CLEAN_DIR)
6868

6969
project.tasks.getByName('fixtures-load').configure { FixturesTask t ->
7070
t.inputDir = loadDir
7171
t.configFile = configFile
72+
t.isClean = false
7273
}
7374

7475
project.tasks.getByName('fixtures-clean').configure { FixturesTask t ->
7576
t.inputDir = cleanDir
7677
t.configFile = configFile
78+
t.isClean = true
7779
}
7880
}
7981
}

buildSrc/src/main/groovy/dwbh/gradle/FixturesTask.groovy

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ class FixturesTask extends DefaultTask {
3737
@InputFile
3838
File configFile
3939

40+
/**
41+
* Indicates if it is a clean operation
42+
*
43+
* @since 0.1.0
44+
*/
45+
boolean isClean = false
46+
47+
4048
/**
4149
* Task entry point
4250
*
@@ -45,12 +53,16 @@ class FixturesTask extends DefaultTask {
4553
@TaskAction
4654
void createFixtures() {
4755
logger.lifecycle "------------------${this.name.toUpperCase()}-----------------"
48-
56+
4957
File[] sqlFiles = inputDir
50-
.listFiles(FixturesUtils.onlySqlFiles)
51-
.sort()
58+
.listFiles(FixturesUtils.onlySqlFiles)
59+
.sort()
60+
61+
if (isClean) {
62+
sqlFiles = sqlFiles.reverse()
63+
}
5264

53-
Map<String,?> dbConfig = FixturesUtils.loadYaml(configFile)
65+
Map<String, ?> dbConfig = FixturesUtils.loadYaml(configFile)
5466
SqlProcessor processor = new SqlProcessor(dbConfig, sqlFiles, logger)
5567

5668
processor.process()

etc/fixtures/clean/01-groups.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
TRUNCATE groups;
1+
delete from groups;

etc/fixtures/clean/02-users.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
TRUNCATE users_groups;
2-
TRUNCATE users;
1+
delete from users;
2+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
truncate users_groups;
2+

src/main/java/dwbh/api/services/AwsSesMailService.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import com.amazonaws.services.simpleemail.model.Message;
1010
import com.amazonaws.services.simpleemail.model.SendEmailRequest;
1111
import com.amazonaws.services.simpleemail.model.SendEmailResult;
12-
import dwbh.api.util.Config;
1312
import dwbh.api.util.Email;
1413
import io.micronaut.context.annotation.Primary;
14+
import io.micronaut.context.annotation.Value;
1515
import javax.inject.Singleton;
1616
import org.slf4j.Logger;
1717
import org.slf4j.LoggerFactory;
@@ -40,10 +40,13 @@ public class AwsSesMailService implements EmailService {
4040
* @param config server configuration
4141
* @since 0.1.0
4242
*/
43-
public AwsSesMailService(AWSCredentialsProvider credentialsProvider, Config config) {
43+
public AwsSesMailService(
44+
AWSCredentialsProvider credentialsProvider,
45+
@Value("${aws.region:none}") String awsRegion,
46+
@Value("${aws.sourceEmail:none}") String sourceEmail) {
4447
this.credentialsProvider = credentialsProvider;
45-
this.awsRegion = config.get("awsRegion");
46-
this.sourceEmail = config.get("awsSourceEmail");
48+
this.awsRegion = awsRegion;
49+
this.sourceEmail = sourceEmail;
4750
}
4851

4952
private Body bodyOfEmail(Email email) {

src/main/java/dwbh/api/util/Config.java

Lines changed: 0 additions & 51 deletions
This file was deleted.

src/main/java/dwbh/api/util/DwbhAwsCredentialsProvider.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.amazonaws.auth.AWSCredentials;
44
import com.amazonaws.auth.AWSCredentialsProvider;
55
import com.amazonaws.auth.BasicAWSCredentials;
6+
import io.micronaut.context.annotation.Value;
67
import javax.inject.Singleton;
78

89
/**
@@ -21,9 +22,11 @@ public class DwbhAwsCredentialsProvider implements AWSCredentialsProvider {
2122
* @param config configuration providing access key and secret key
2223
* @since 0.1.0
2324
*/
24-
public DwbhAwsCredentialsProvider(Config config) {
25-
this.accessKey = config.get("awsAccessKey");
26-
this.secretKey = config.get("awsSecretKey");
25+
public DwbhAwsCredentialsProvider(
26+
@Value("${aws.accessKey:none}") String awsAccessKey,
27+
@Value("${aws.secretKey:none}") String awsSecretKey) {
28+
this.accessKey = awsAccessKey;
29+
this.secretKey = awsSecretKey;
2730
}
2831

2932
@Override
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
micronaut:
2+
application:
3+
name: dwbh-api
4+
5+
datasources:
6+
default:
7+
url: ${DWBH_JDBC_URL}
8+
username: ${DWBH_JDBC_USER}
9+
password: ${DWBH_JDBC_PASSWORD}
10+
driverClassName: ${DWBH_JDBC_DRIVER}
11+
12+
13+
flyway:
14+
datasources:
15+
default:
16+
locations: classpath:migrations
17+
18+
graphql:
19+
enabled: true
20+
path: /graphql
21+
22+
aws:
23+
sourceemail: ${DWBH_AWS_SOURCE_EMAIL}
24+
region: ${DWBH_AWS_REGION}
25+
accessKey: ${DWBH_ACCESS_KEY}
26+
secretKey: ${DWBH_SECRET_KEY}

src/main/resources/application.yml renamed to src/main/resources/application.yml.template

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ datasources:
99
password: dwbh
1010
driverClassName: org.postgresql.Driver
1111

12+
1213
flyway:
1314
datasources:
1415
default:
@@ -19,7 +20,7 @@ graphql:
1920
path: /graphql
2021

2122
aws:
22-
sourceemail: [email protected]
23+
sourceemail: [email protected]
2324
region: eu-west-1
2425
accessKey: XXX
2526
secretKey: YYY

0 commit comments

Comments
 (0)