Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[for future beginners] lightweight ver. #1

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM eclipse-temurin:17-jre-alpine
EXPOSE 8000
COPY /target/lotto-web.jar /lotto-web.jar
ENTRYPOINT ["java","-jar","/lotto-web.jar"]
31 changes: 31 additions & 0 deletions buildspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: 0.2

phases:
pre_build:
commands:
- mvn clean install
- echo Logging in to Amazon ECR...
- aws --version
- $(aws ecr get-login --region eu-central-1 --no-include-email)
- REPOSITORY_URI=054968576252.dkr.ecr.eu-central-1.amazonaws.com/lotto
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_TAG=build-$(echo $CODEBUILD_BUILD_ID | awk -F":" '{print $2}')
build:
commands:
- echo Build started on `date`
- echo Building the Docker compose image...
- docker-compose build .
- docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker images...
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
- echo Writing image definitions file...
- printf '[{"name":"lotto","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
- cat imagedefinitions.json
artifacts:
files:
- imagedefinitions.json
- target/lotto-web.jar
39 changes: 39 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Use root/example as user/password credentials
version: '3.1'

services:
# actual database image
mongo:
container_name: mongo_db
image: mongo:4.0.10
restart: always
ports:
- "27017:27017" # port forwarding
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
MONGO_INITDB_DATABASE: lotto-web
volumes:
- ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
networks:
- lotto-net

lotto:
container_name: lotto
build: .
# image: 054968576252.dkr.ecr.eu-central-1.amazonaws.com/lotto:latest
restart: always
ports:
- '8000:8000'
networks:
- lotto-net
depends_on:
- mongo

volumes:
redis:
driver: local

networks:
lotto-net:
driver: bridge
File renamed without changes.
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<mockito.version>4.8.0</mockito.version>
<awaitility.version>4.2.0</awaitility.version>
<testcontainers.version>1.17.4</testcontainers.version>
<spring.boot.maven.plugin.version>3.0.1</spring.boot.maven.plugin.version>
</properties>

<parent>
Expand Down Expand Up @@ -101,6 +102,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>

<build>
Expand Down
51 changes: 0 additions & 51 deletions src/docker/docker-compose.yml

This file was deleted.

4 changes: 3 additions & 1 deletion src/main/java/pl/lotto/AppRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@SpringBootApplication
@EnableCaching
//@EnableCaching
@EnableScheduling
@EnableWebMvc
public class AppRunner {

public static void main(String[] args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
package pl.lotto.infrastructure.numberreceiver.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import pl.lotto.numberreceiver.NumberReceiverFacade;
import pl.lotto.numberreceiver.dto.ReceiverRequestDto;
import pl.lotto.numberreceiver.dto.ReceiverResponseDto;

@Controller
public class NumberReceiverWebController {

private final NumberReceiverFacade numberReceiverFacade;

public NumberReceiverWebController(NumberReceiverFacade numberReceiverFacade) {
this.numberReceiverFacade = numberReceiverFacade;
}

@PostMapping("/receiver")
public String getInputNumbersFromUser(ReceiverRequestDto receiverRequestDto, Model model) {
ReceiverResponseDto receiverResponseDto = numberReceiverFacade.inputNumbers(receiverRequestDto.getTypedNumbers());
model.addAttribute("receiverResponseDto", receiverResponseDto);
return "receiver-resp-view";
}

}
//package pl.lotto.infrastructure.numberreceiver.controllers;
//
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.PostMapping;
//import pl.lotto.numberreceiver.NumberReceiverFacade;
//import pl.lotto.numberreceiver.dto.ReceiverRequestDto;
//import pl.lotto.numberreceiver.dto.ReceiverResponseDto;
//
//@Controller
//public class NumberReceiverWebController {
//
// private final NumberReceiverFacade numberReceiverFacade;
//
// public NumberReceiverWebController(NumberReceiverFacade numberReceiverFacade) {
// this.numberReceiverFacade = numberReceiverFacade;
// }
//
// @PostMapping("/receiver")
// public String getInputNumbersFromUser(ReceiverRequestDto receiverRequestDto, Model model) {
// ReceiverResponseDto receiverResponseDto = numberReceiverFacade.inputNumbers(receiverRequestDto.getTypedNumbers());
// model.addAttribute("receiverResponseDto", receiverResponseDto);
// return "receiver-resp-view";
// }
//
//}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public ResultsAnnouncerRestController(ResultsAnnouncerFacade resultsAnnouncerFac
this.resultsAnnouncerFacade = resultsAnnouncerFacade;
}

@GetMapping(value = "/api/v1/results")
@PostMapping(value = "/api/v1/results")
public ResponseEntity<AnnouncerResponseDto> getResultsForUuid(@RequestBody AnnouncerRequestDto announcerRequestDto) {
AnnouncerResponseDto resultsForId = resultsAnnouncerFacade.getResultsForId(announcerRequestDto.getRequestUuid());
return new ResponseEntity<>(resultsForId, HttpStatus.OK);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
package pl.lotto.infrastructure.resultsannouncer.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import pl.lotto.resultsannouncer.ResultsAnnouncerFacade;
import pl.lotto.resultsannouncer.dto.AnnouncerRequestDto;
import pl.lotto.resultsannouncer.dto.AnnouncerResponseDto;

import java.util.UUID;

@Controller
public class ResultsAnnouncerWebController {

private final ResultsAnnouncerFacade resultsAnnouncerFacade;

public ResultsAnnouncerWebController(ResultsAnnouncerFacade resultsAnnouncerFacade) {
this.resultsAnnouncerFacade = resultsAnnouncerFacade;
}

@GetMapping("/results")
public String getResultsForUuid(AnnouncerRequestDto announcerRequestDto, Model model) {
AnnouncerResponseDto announcerResponseDto = resultsAnnouncerFacade.getResultsForId(announcerRequestDto.getRequestUuid());
model.addAttribute("announcerResponseDto", announcerResponseDto);
return "announcer-resp-view";
}

}
//package pl.lotto.infrastructure.resultsannouncer.controllers;
//
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.*;
//import pl.lotto.resultsannouncer.ResultsAnnouncerFacade;
//import pl.lotto.resultsannouncer.dto.AnnouncerRequestDto;
//import pl.lotto.resultsannouncer.dto.AnnouncerResponseDto;
//
//import java.util.UUID;
//
//@Controller
//public class ResultsAnnouncerWebController {
//
// private final ResultsAnnouncerFacade resultsAnnouncerFacade;
//
// public ResultsAnnouncerWebController(ResultsAnnouncerFacade resultsAnnouncerFacade) {
// this.resultsAnnouncerFacade = resultsAnnouncerFacade;
// }
//
// @GetMapping("/results")
// public String getResultsForUuid(AnnouncerRequestDto announcerRequestDto, Model model) {
// AnnouncerResponseDto announcerResponseDto = resultsAnnouncerFacade.getResultsForId(announcerRequestDto.getRequestUuid());
// model.addAttribute("announcerResponseDto", announcerResponseDto);
// return "announcer-resp-view";
// }
//
//}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ public ResultsAnnouncerFacade(ResultsCheckerFacade resultsCheckerFacade) {
this.resultsCheckerFacade = resultsCheckerFacade;
}

@Cacheable("publishedResultsDtoCache")
public AnnouncerResponseDto getResultsForId(UUID uuid) {
if (Objects.isNull(uuid)) {
return notFoundDto();
Expand Down
7 changes: 5 additions & 2 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ spring:
data:
mongodb:
uuid-representation: standard
uri: mongodb://admin:admin@localhost:27017/lotto-web # mongodb://[username:password@]host1[:port1]/[database-name]
uri: mongodb://admin:admin@mongo_db/lotto-web # mongodb://[username:password@]host1[:port1]/[database-name]
host: localhost
cache:
redis:
Expand All @@ -29,4 +29,7 @@ lotto:
#lotteryRunOccurrence: "${lotto.time.drawSeconds} ${lotto.time.drawMinutes} ${lotto.time.drawHour} * * ${lotto.time.drawDayOfWeek}"
lotteryRunOccurrence: "*/2 * * * * *"
checker:
matchedNumbersToWin: 3
matchedNumbersToWin: 3

server:
port: 8000