diff --git a/.github/workflows/front-main-deploy.yml b/.github/workflows/front-main-deploy.yml
new file mode 100644
index 00000000..ac0d24c2
--- /dev/null
+++ b/.github/workflows/front-main-deploy.yml
@@ -0,0 +1,31 @@
+name: front-main-deploy
+
+on:
+ push: # 적용될 액션
+ branches: main # 적용될 브랜치
+ paths:
+ - "frontend/**" # workflow에서 적용될 path
+
+defaults:
+ run:
+ working-directory: ./frontend # workflow에서 default working directory
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest # 인스턴스 OS
+ steps:
+ - name: Checkout source code
+ uses: actions/checkout@v2 # 워크플로에서 액세스할 수 있도록 에서 저장소를 체크아웃
+
+ - name: Install Dependencies
+ run: yarn
+
+ - name: Build
+ run: yarn build
+
+ - name: S3 Deploy
+ run: aws s3 sync ./dist s3://2021-cvi/ --acl bucket-owner-full-control # s3 이름 2021-cvi
+ env:
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ AWS_REGION: ${{ secrets.AWS_REGION }}
diff --git a/README.md b/README.md
index 992d13d4..cb697f8f 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,193 @@
-# 백중원(백신 중앙 정보원)
+
+# 프로젝트 소개
+
+
+
+
+
+
+ (클릭하면 영상을 실행할 수 있습니다)
+
+
+
+
+
+코로나19 백신 접종 후기를 남기다! 우리는 [`Team CVI`](https://vaccine-review.com) 입니다.
+
+- [`CVI`](https://vaccine-review.com) 는 코로나19 백신 정보를 제공해줘요.
+- [`CVI`](https://vaccine-review.com) 에서는 백신 후기를 남길 수 있어요.
+- 부작용이 걱정되신다구요? [`다른 사람들의 후기를 보러 가볼까요? :)`](https://vaccine-review.com)
+
+서비스 URL: https://vaccine-review.com
+
+
+
+# 서비스 기능
+## 간단 요약
+![간단 요약](https://user-images.githubusercontent.com/53412998/135582980-53157888-c54d-4313-bff5-e06ccd01274f.gif)
+
+
+소셜 로그인
+
+
+
+
+
+글 작성
+
+
+
+
+좋아요 누르기, 댓글 작성
+
+
+
+
+게시글 필터링, 정렬
+
+
+
+
+마이페이지
+
+
+
+
+접종 현황 통계
+
+
+
+
+
+# 우리팀의 강점
+
+
+
+[애자일하게 서비스를 개발했어요.](https://www.notion.so/da2fc7e8d99f4f4484bad58ed2e1b233)
+
+[우리만의 팀 문화를 만들었어요.](https://www.notion.so/ccf25ce39e2d42389c43ccf9b768b53b)
+
+
+
+# 기술 스택
+
+
+
+
+# 서비스아키텍처
+
+## 사용자 요청 시나리오 (요청부터 응답까지)
+![FE+BE](https://user-images.githubusercontent.com/43339385/135794655-511b9a4b-ce99-41ca-a003-d549b1e3f20a.png)
+
+## 프로트엔드 아키텍쳐
+![FE_CI:CD](https://user-images.githubusercontent.com/43339385/135794087-571dea0c-c90f-42c3-b8cf-b08130ea0d39.png)
+
+
+## 백엔드 인프라 아키텍처
+![image](https://user-images.githubusercontent.com/48986787/135793839-08fc58d6-c381-4af3-be58-16342d8ff5bb.png)
+
+
+## 백엔드 CI / CD
+![image](https://user-images.githubusercontent.com/48986787/135793875-193bc33a-31fd-414a-ac1c-4591e44086cf.png)
+
+
+
+# 팀원 소개
+
diff --git a/backend/.gitignore b/backend/.gitignore
index 1d0e8c1d..fa41defc 100644
--- a/backend/.gitignore
+++ b/backend/.gitignore
@@ -38,12 +38,3 @@ out/
# QueryDSL
/backend/src/main/generated/
-
-# db
-/src/main/resources/application-db.yml
-
-# jwt
-/src/main/resources/application-jwt.yml
-
-# client-secret
-/src/main/resources/application-client-secret.yml
diff --git a/backend/app-cvi-api/docs/asciidoc/index.adoc b/backend/app-cvi-api/src/docs/asciidoc/index.adoc
similarity index 99%
rename from backend/app-cvi-api/docs/asciidoc/index.adoc
rename to backend/app-cvi-api/src/docs/asciidoc/index.adoc
index 9e704287..9148d230 100644
--- a/backend/app-cvi-api/docs/asciidoc/index.adoc
+++ b/backend/app-cvi-api/src/docs/asciidoc/index.adoc
@@ -575,3 +575,5 @@ include::{snippets}/comment-delete/http-response.adoc[]
===== Request
include::{snippets}/comment-delete-failure/http-request.adoc[]
+===== Response
+include::{snippets}/comment-delete-failure/http-response.adoc[]
diff --git a/backend/app-cvi-api/src/main/java/com/cvi/controller/PostController.java b/backend/app-cvi-api/src/main/java/com/cvi/controller/PostController.java
index a3e76dad..1c9bff60 100644
--- a/backend/app-cvi-api/src/main/java/com/cvi/controller/PostController.java
+++ b/backend/app-cvi-api/src/main/java/com/cvi/controller/PostController.java
@@ -43,9 +43,8 @@ public List findByVaccineTypeAndPaging(@RequestParam(defaultValue
@RequestParam(defaultValue = "0") int offset,
@RequestParam(defaultValue = "6") int size,
@RequestParam(defaultValue = "CREATED_AT_DESC") Sort sort,
- @RequestParam(defaultValue = "500") int fromHoursBefore,
@AuthenticationPrincipal Optional user) {
- return postService.findByVaccineType(vaccinationType, offset, size, sort, fromHoursBefore, user);
+ return postService.findByVaccineType(vaccinationType, offset, size, sort, user);
}
@GetMapping("/{id}")
diff --git a/backend/app-cvi-api/src/main/java/com/cvi/service/post/PostService.java b/backend/app-cvi-api/src/main/java/com/cvi/service/post/PostService.java
index 0c0991e3..016df9fd 100644
--- a/backend/app-cvi-api/src/main/java/com/cvi/service/post/PostService.java
+++ b/backend/app-cvi-api/src/main/java/com/cvi/service/post/PostService.java
@@ -107,8 +107,8 @@ public List findByVaccineType(VaccinationType vaccinationType, Opt
return PostResponse.toList(posts, optionalUser.orElse(null));
}
- public List findByVaccineType(VaccinationType vaccinationType, int offset, int size, Sort sort, int hours, Optional optionalUser) {
- List posts = postRepository.findByVaccineType(vaccinationType, offset, size, Sort.toOrderSpecifier(sort), hours);
+ public List findByVaccineType(VaccinationType vaccinationType, int offset, int size, Sort sort, Optional optionalUser) {
+ List posts = postRepository.findByVaccineType(vaccinationType, offset, size, Sort.toOrderSpecifier(sort));
return PostResponse.toList(posts, optionalUser.orElse(null));
}
diff --git a/backend/app-cvi-api/src/test/java/com/cvi/controller/PostControllerTest.java b/backend/app-cvi-api/src/test/java/com/cvi/controller/PostControllerTest.java
index 8d236112..0bbd4bbe 100644
--- a/backend/app-cvi-api/src/test/java/com/cvi/controller/PostControllerTest.java
+++ b/backend/app-cvi-api/src/test/java/com/cvi/controller/PostControllerTest.java
@@ -196,7 +196,7 @@ void findByVaccineTypePaging() throws Exception {
new PostResponse(37L, userResponse, "이건 내용입니다.2", 200, 20, 4, false, VaccinationType.PFIZER, LocalDateTime.now().minusDays(1), imageUrls),
new PostResponse(36L, userResponse, "이건 내용입니다.3", 300, 30, 2, true, VaccinationType.PFIZER, LocalDateTime.now().minusDays(2), imageUrls)
));
- willReturn(postResponses).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), anyInt(), any());
+ willReturn(postResponses).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), any());
//when
ResultActions response = 글_타입별_페이징_조회_요청(VaccinationType.PFIZER, 0, 3);
//then
@@ -208,7 +208,7 @@ void findByVaccineTypePaging() throws Exception {
void findByVaccineTypePagingWhenPostsIsEmpty() throws Exception {
//given
List postResponse = Collections.emptyList();
- willReturn(postResponse).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), anyInt(), any());
+ willReturn(postResponse).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), any());
//when
ResultActions response = 글_타입별_페이징_조회_요청(VaccinationType.PFIZER, 0, 3);
//then
@@ -224,7 +224,7 @@ void findByVaccineTypeSorting() throws Exception {
new PostResponse(37L, userResponse, "이건 내용입니다.2", 200, 20, 8, false, VaccinationType.PFIZER, LocalDateTime.now().minusDays(1), imageUrls),
new PostResponse(146L, userResponse, "이건 내용입니다.3", 300, 30, 1, true, VaccinationType.PFIZER, LocalDateTime.now().minusDays(2), imageUrls)
));
- willReturn(postResponses).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), anyInt(), any());
+ willReturn(postResponses).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), any());
//when
ResultActions response = 글_타입별_정렬_조회_요청(VaccinationType.PFIZER, Sort.LIKE_COUNT_ASC);
//then
@@ -240,7 +240,7 @@ void findByVaccineTypeHourFiltering() throws Exception {
new PostResponse(37L, userResponse, "이건 내용입니다.2", 200, 20, 6, false, VaccinationType.PFIZER, LocalDateTime.now().minusHours(3), imageUrls),
new PostResponse(146L, userResponse, "이건 내용입니다.3", 300, 30, 7, true, VaccinationType.PFIZER, LocalDateTime.now().minusHours(5), imageUrls)
));
- willReturn(postResponses).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), anyInt(), any());
+ willReturn(postResponses).given(postService).findByVaccineType(any(VaccinationType.class), anyInt(), anyInt(), any(), any());
//when
ResultActions response = 글_타입별_시간필터링_조회_요청(VaccinationType.PFIZER, 24);
//then
diff --git a/backend/app-cvi-api/src/test/java/com/cvi/service/PostFindServiceTest.java b/backend/app-cvi-api/src/test/java/com/cvi/service/PostFindServiceTest.java
index ec988bb2..e48f3584 100644
--- a/backend/app-cvi-api/src/test/java/com/cvi/service/PostFindServiceTest.java
+++ b/backend/app-cvi-api/src/test/java/com/cvi/service/PostFindServiceTest.java
@@ -178,7 +178,7 @@ static Stream findByVaccineType() {
void findByVaccineTypeFirstPageAll() {
//given
//when
- List postResponses = postService.findByVaccineType(VaccinationType.ALL, 0, 1, Sort.CREATED_AT_DESC, 24, optionalUser);
+ List postResponses = postService.findByVaccineType(VaccinationType.ALL, 0, 1, Sort.CREATED_AT_DESC, optionalUser);
//then
assertThat(postResponses).size().isEqualTo(1);
assertThat(postResponses).extracting("content").containsExactlyElementsOf(Collections.singletonList("Test 2"));
@@ -190,7 +190,7 @@ void findByVaccineTypeFirstPageAll() {
void findByVaccineTypeNextPageAll() {
//given
//when
- List postResponses = postService.findByVaccineType(VaccinationType.ALL, 1, 1, Sort.CREATED_AT_DESC, 24, optionalUser);
+ List postResponses = postService.findByVaccineType(VaccinationType.ALL, 1, 1, Sort.CREATED_AT_DESC, optionalUser);
//then
assertThat(postResponses).size().isEqualTo(1);
assertThat(postResponses).extracting("content").containsExactlyElementsOf(Arrays.asList("Test 1"));
@@ -202,7 +202,7 @@ void findByVaccineTypeNextPageAll() {
void findByVaccineTypeFirstPage(VaccinationType vaccinationType, int size, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, size, Sort.CREATED_AT_DESC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, size, Sort.CREATED_AT_DESC, optionalUser);
//then
assertThat(postResponses).size().isEqualTo(contentResult.size());
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
@@ -222,7 +222,7 @@ static Stream findByVaccineTypeFirstPage() {
void findByVaccineTypeNextPage(VaccinationType vaccinationType, int size, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 1, size, Sort.CREATED_AT_DESC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 1, size, Sort.CREATED_AT_DESC, optionalUser);
//then
assertThat(postResponses).size().isEqualTo(contentResult.size());
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
@@ -240,7 +240,7 @@ static Stream findByVaccineTypeNextPage() {
void findByVaccineTypeNextPageIsNull(VaccinationType vaccinationType, int size, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 1, size, Sort.CREATED_AT_DESC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 1, size, Sort.CREATED_AT_DESC, optionalUser);
//then
assertThat(postResponses).size().isEqualTo(contentResult.size());
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
@@ -260,7 +260,7 @@ static Stream findByVaccineTypeNextPageIsNull() {
void findByVaccineTypeSortByLikeCountAsc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.LIKE_COUNT_ASC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.LIKE_COUNT_ASC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -280,7 +280,7 @@ static Stream findByVaccineTypeSortByLikeCountAsc() {
void findByVaccineTypeSortByLikeCountDesc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.LIKE_COUNT_DESC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.LIKE_COUNT_DESC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -300,7 +300,7 @@ static Stream findByVaccineTypeSortByLikeCountDesc() {
void findByVaccineTypeSortByCommentsCountAsc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.COMMENT_COUNT_ASC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.COMMENT_COUNT_ASC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -320,7 +320,7 @@ static Stream findByVaccineTypeSortByCommentsCountAsc() {
void findByVaccineTypeSortByCommentsCountDesc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.COMMENT_COUNT_DESC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.COMMENT_COUNT_DESC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -340,7 +340,7 @@ static Stream findByVaccineTypeSortByCommentsCountDesc() {
void findByVaccineTypeSortByViewCountAsc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.VIEW_COUNT_ASC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.VIEW_COUNT_ASC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -360,7 +360,7 @@ static Stream findByVaccineTypeSortByViewCountAsc() {
void findByVaccineTypeSortByViewCountDesc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.VIEW_COUNT_DESC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.VIEW_COUNT_DESC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -380,7 +380,7 @@ static Stream findByVaccineTypeSortByViewCountDesc() {
void findByVaccineTypeSortByCreatedAtAsc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.CREATED_AT_ASC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.CREATED_AT_ASC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -400,7 +400,7 @@ static Stream findByVaccineTypeSortByCreatedAtAsc() {
void findByVaccineTypeSortByCreatedAtDesc(VaccinationType vaccinationType, List contentResult) {
//given
//when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.CREATED_AT_DESC, Integer.MAX_VALUE, optionalUser);
+ List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.CREATED_AT_DESC, optionalUser);
//then
assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
}
@@ -414,23 +414,4 @@ static Stream findByVaccineTypeSortByCreatedAtDesc() {
Arguments.of(VaccinationType.MODERNA, Collections.emptyList())
);
}
-
- @ParameterizedTest(name = "게시글 시간 필터링 조회 - 성공")
- @MethodSource
- void findByVaccineTypeFilterByHour(VaccinationType vaccinationType, int hour, List contentResult) {
- //given
- //when
- List postResponses = postService.findByVaccineType(vaccinationType, 0, Integer.MAX_VALUE, Sort.CREATED_AT_DESC, hour, optionalUser);
- //then
- assertThat(postResponses).extracting("content").containsExactlyElementsOf(contentResult);
- }
-
- static Stream findByVaccineTypeFilterByHour() {
- return Stream.of(
- Arguments.of(VaccinationType.ALL, Integer.MAX_VALUE, Arrays.asList("Test 2", "Test 1", "Test 0")),
- Arguments.of(VaccinationType.ALL, 3, Arrays.asList("Test 2", "Test 1")),
- Arguments.of(VaccinationType.ALL, 2, Arrays.asList("Test 2")),
- Arguments.of(VaccinationType.ALL, 1, Collections.emptyList())
- );
- }
}
diff --git a/backend/domain-cvi-aws-s3-service/README.md b/backend/domain-cvi-aws-s3-service/README.md
new file mode 100644
index 00000000..c4c84338
--- /dev/null
+++ b/backend/domain-cvi-aws-s3-service/README.md
@@ -0,0 +1,9 @@
+# domain-cvi-aws-s3-service
+## 모듈 설명
+- AWS S3에 이미지를 업로드/삭제하는 기능을 제공해요.
+- AWS에 직접 연결해야하기 때문에 설정파일(application-aws-s3.yml)의 설정값이 필요해요.
+- 우테코 계정의 S3는 우테코 계정 내의 EC2에서만 접근할 수 있기 때문에, local 환경에서 테스트하기 위해서는 개인 AWS 계정의 S3와 그에 따른 설정을 사용해야 해요.
+ (이에 대한 방법은 문서에 정리해 두었습니다.)
+
+## 의존 모듈
+- 없음
diff --git a/backend/domain-cvi-aws-s3-service/build.gradle b/backend/domain-cvi-aws-s3-service/build.gradle
index a61d929e..32e3e35f 100644
--- a/backend/domain-cvi-aws-s3-service/build.gradle
+++ b/backend/domain-cvi-aws-s3-service/build.gradle
@@ -2,7 +2,6 @@ bootJar { enabled = false }
jar { enabled = true }
dependencies {
- implementation project(path:':domain-cvi', configuration: 'default')
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
}
diff --git a/backend/domain-cvi-aws-s3-service/src/test/java/com/cvi/empty.txt b/backend/domain-cvi-aws-s3-service/src/test/java/com/cvi/empty.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostQueryDsl.java b/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostQueryDsl.java
index 28a1d50a..e800edf2 100644
--- a/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostQueryDsl.java
+++ b/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostQueryDsl.java
@@ -11,7 +11,7 @@ public interface PostQueryDsl {
List findByVaccineType(VaccinationType vaccinationType);
- List findByVaccineType(VaccinationType vaccinationType, int offset, int size, OrderSpecifier orderSpecifier, int hours);
+ List findByVaccineType(VaccinationType vaccinationType, int offset, int size, OrderSpecifier orderSpecifier);
List findByUserId(Long userId);
diff --git a/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostRepositoryImpl.java b/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostRepositoryImpl.java
index 1d687cd9..40e7c171 100644
--- a/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostRepositoryImpl.java
+++ b/backend/domain-cvi/src/main/java/com/cvi/post/domain/repository/PostRepositoryImpl.java
@@ -36,20 +36,16 @@ public List findByVaccineType(VaccinationType vaccinationType) {
}
@Override
- public List findByVaccineType(VaccinationType vaccinationType, int offset, int size, OrderSpecifier orderSpecifier, int hours) {
+ public List findByVaccineType(VaccinationType vaccinationType, int offset, int size, OrderSpecifier orderSpecifier) {
return queryFactory.selectFrom(post)
.leftJoin(post.user, user).fetchJoin()
- .where(vaccinationTypeEq(vaccinationType), fromHoursBefore(hours))
+ .where(vaccinationTypeEq(vaccinationType))
.orderBy(orderSpecifier, post.createdAt.desc())
.offset(offset)
.limit(size)
.fetch();
}
- private BooleanExpression fromHoursBefore(int hours) {
- return post.createdAt.after(LocalDateTime.now().minusHours(hours));
- }
-
private BooleanExpression vaccinationTypeEq(VaccinationType vaccinationType) {
if (Objects.nonNull(vaccinationType) && !vaccinationType.equals(VaccinationType.ALL)) {
return post.vaccinationType.eq(vaccinationType);
diff --git a/frontend/public/favicon.svg b/frontend/public/favicon.svg
deleted file mode 100644
index 28ffb9a3..00000000
--- a/frontend/public/favicon.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/public/index.html b/frontend/public/index.html
index f81d1d0c..f58e4d5a 100644
--- a/frontend/public/index.html
+++ b/frontend/public/index.html
@@ -5,7 +5,17 @@
-
+
+
+
+
+
+
+
+
+
+
+