diff --git a/.ebextensions-dev/00-makeFiles.config b/.ebextensions-dev/00-makeFiles.config
deleted file mode 100644
index 852258da..00000000
--- a/.ebextensions-dev/00-makeFiles.config
+++ /dev/null
@@ -1,11 +0,0 @@
-files:
- "/sbin/appstart" :
- mode: "000755"
- owner: webapp
- group: webapp
- content: |
- #!/usr/bin/env bash
- JAR_PATH=/var/app/current/application.jar
-
- # run app
- java -Dfile.encoding=UTF-8 -Dspring.profiles.active=dev -jar $JAR_PATH
\ No newline at end of file
diff --git a/.ebextensions-real/00-makeFiles.config b/.ebextensions-real/00-makeFiles.config
index e880de45..a54d1b59 100644
--- a/.ebextensions-real/00-makeFiles.config
+++ b/.ebextensions-real/00-makeFiles.config
@@ -1,11 +1,17 @@
files:
- "/sbin/appstart" :
+ "/sbin/api_start" :
mode: "000755"
owner: webapp
group: webapp
content: |
- #!/usr/bin/env bash
- JAR_PATH=/var/app/current/application.jar
-
# run app
- java -Duser.timezone="Asia/Seoul" -Dspring.profiles.active=real -jar $JAR_PATH
\ No newline at end of file
+ kill `ps -ef | grep fairer-api | awk '{print $2}'`
+ java -Duser.timezone="Asia/Seoul" -Dspring.profiles.active=real -jar /var/app/current/fairer-api.jar
+ "/sbin/batch_start" :
+ mode: "000755"
+ owner: webapp
+ group: webapp
+ content: |
+ # run app
+ kill `ps -ef | grep fairer-batch | awk '{print $2}'`
+ java -Duser.timezone="Asia/Seoul" -Dspring.profiles.active=real -jar /var/app/current/fairer-batch.jar
\ No newline at end of file
diff --git a/.github/workflows/dev-fairer-api.yml b/.github/workflows/dev-fairer-api.yml
new file mode 100644
index 00000000..f4ae2360
--- /dev/null
+++ b/.github/workflows/dev-fairer-api.yml
@@ -0,0 +1,66 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
+# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
+
+name: dev-fairer-api
+
+on:
+ workflow_dispatch:
+ push:
+ branches: [ develop ]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v2
+ with:
+ java-version: '11'
+ distribution: 'adopt'
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ - name: Grant execute permission for gradlew
+ run: chmod +x ./gradlew # gradle wrapper를 실행할 수 있도록 권한 부여
+ shell: bash
+
+ - name: Set timezone to Seoul
+ run: sudo timedatectl set-timezone Asia/Seoul
+ shell: bash
+
+ - name: JIB Build with Gradle
+ run: ./gradlew :fairer-api:jib # 프로젝트 빌드
+ shell: bash
+
+ - name: Get current time
+ uses: 1466587594/get-current-time@v2 # 빌드 완료 시간 가져오기
+ id: current-time
+ with:
+ format: YYYY-MM-DD-HH-mm-ss
+ utcOffset: "+09:00"
+
+ - name: Show Current Time
+ run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}" # 빌드 완료 시간 출력하기
+ shell: bash
+
+ deploy:
+ needs: build
+ name: Deploy
+ runs-on: [ self-hosted, label-development ]
+ steps:
+ - name: Docker run
+ run: |
+ sudo docker ps -q --filter "name=fairer-dev" | grep -q . && sudo docker stop "fairer-dev" && sudo docker rmi "fairerbe/fairer-dev-repo:latest"
+ sudo docker run -d --name fairer-dev --rm -p 8080:8080 fairerbe/fairer-dev-repo:latest
diff --git a/.github/workflows/dev-fairer.yml b/.github/workflows/dev-fairer-batch.yml
similarity index 54%
rename from .github/workflows/dev-fairer.yml
rename to .github/workflows/dev-fairer-batch.yml
index 0d2147c3..c1b5a2f4 100644
--- a/.github/workflows/dev-fairer.yml
+++ b/.github/workflows/dev-fairer-batch.yml
@@ -5,7 +5,7 @@
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
-name: dev-fairer
+name: dev-fairer-batch
on:
workflow_dispatch:
@@ -26,12 +26,22 @@ jobs:
java-version: '11'
distribution: 'adopt'
+ - name: Login to Docker Hub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew # gradle wrapper를 실행할 수 있도록 권한 부여
shell: bash
- - name: Build with Gradle
- run: ./gradlew clean build # 프로젝트 빌드
+ - name: Set timezone to Seoul
+ run: sudo timedatectl set-timezone Asia/Seoul
+ shell: bash
+
+ - name: JIB Build with Gradle
+ run: ./gradlew :fairer-batch:jib # 프로젝트 빌드
shell: bash
- name: Get current time
@@ -45,23 +55,12 @@ jobs:
run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}" # 빌드 완료 시간 출력하기
shell: bash
- # gradle build를 통해 만들어진 jar 파일 codedeploy에 배포하기 위한 zip 파일로 만듬
- - name: Generate deployment package
+ deploy:
+ needs: build
+ name: Deploy
+ runs-on: [ self-hosted, label-development ]
+ steps:
+ - name: Docker run
run: |
- mkdir -p deploy
- cp build/libs/*.jar deploy/fairer-dev.jar
- cp deploy.sh deploy/deploy.sh
- cd deploy
-
- - name: aws 세팅
- uses: aws-actions/configure-aws-credentials@v1
- with:
- aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_DEV }}
- aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_DEV }}
- aws-region: ap-northeast-2
-
- - name: S3 업로드
- run: aws deploy push --application-name 2-Team-CodeDeploy --s3-location s3://depromeet11th/2team/fairer_dev/build.zip --source .
-
- - name: code deploy
- run: aws deploy create-deployment --application-name 2-Team-CodeDeploy --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name 2-Team-CodeDeploy-Group --s3-location bucket=depromeet11th,bundleType=zip,key=2team/fairer_dev/build.zip
+ sudo docker ps -q --filter "name=fairer-batch-dev" | grep -q . && sudo docker stop "fairer-batch-dev" && sudo docker rmi "fairerbe/fairer-batch-dev:latest"
+ sudo docker run -d --name fairer-batch-dev --rm -p 8081:8081 fairerbe/fairer-batch-dev:latest
diff --git a/.github/workflows/real-fairer.yml b/.github/workflows/real-fairer.yml
index 7dd9fa6a..2336e8ff 100644
--- a/.github/workflows/real-fairer.yml
+++ b/.github/workflows/real-fairer.yml
@@ -30,8 +30,12 @@ jobs:
run: chmod +x ./gradlew # gradle wrapper를 실행할 수 있도록 권한 부여
shell: bash
- - name: Build with Gradle
- run: ./gradlew clean build # 프로젝트 빌드
+ - name: Build API with Gradle
+ run: ./gradlew :fairer-api:build # 프로젝트 빌드
+ shell: bash
+
+ - name: Build Batch with Gradle
+ run: ./gradlew :fairer-batch:build # 프로젝트 빌드
shell: bash
- name: Get current time
@@ -49,7 +53,8 @@ jobs:
- name: Generate deployment package
run: |
mkdir -p deploy
- cp build/libs/*.jar deploy/application.jar
+ cp fairer-api/build/libs/*.jar deploy/fairer-api.jar
+ cp fairer-batch/build/libs/*.jar deploy/fairer-batch.jar
cp Procfile deploy/Procfile
cp -r .ebextensions-real deploy/.ebextensions
cp -r .platform deploy/.platform
diff --git a/Procfile b/Procfile
index 58dab8d4..ae9b293b 100644
--- a/Procfile
+++ b/Procfile
@@ -1 +1,2 @@
-web: appstart
\ No newline at end of file
+api: api_start
+batch: batch_start
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..125b3b9c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,126 @@
+# 🧹 fairer
+
+
+
+
+
+
+
+집안일을 하는 모든 이들의 평화를 위한 집안일 관리, 분담 서비스 👨👧👧
+fairer의 백엔드 레포지토리 입니다.
+> Play 스토어 : https://play.google.com/store/apps/details?id=com.depromeet.housekeeper
+
+
+
+## 🎬 Preview
+
+
+
+
+## 👨👩👧👧 BackEnd Developer
+
+
+
+|
|
|
|
|
+| :-----------------------------------: | :-----------------: | :----------------: |:----------------: |
+| [김승윤](https://github.com/dskym) | [신동빈](https://github.com/SDB016) | [김다슬](https://github.com/daseulll) | [곽다은](https://github.com/daeunkwak) |
+
+
+
+## **💻 Tech Stack**
+
+- Skills
+
+ > Spring Boot, Data JPA(+Querydsl)
+ >
+- Database
+
+ > Mysql, RDS
+ >
+- 개발 환경
+
+ > AWS EC2
+ >
+- 운영 환경
+
+ > Elastic Beanstalk
+ >
+- CI/CD
+
+ > [Github Actions](https://github.com/depromeet/fairer-be/actions)
+ >
+- 문서화
+
+ > [Swagger](http://ec2-13-125-232-180.ap-northeast-2.compute.amazonaws.com:8080/swagger-ui/index.html)
+ >
+- ETC
+
+ > JWT, Oauth2(google)
+
+ > Spring Batch
+ >
+
+
+
+## 📚 Architecture
+
+
+
+
+## 🗂 Directory
+```
+📂 fairer
+ 📂 api
+ 📂 domain
+ 📂 dto
+ 📂 global
+ ├── 📂 config
+ ├── 📂 exception
+ | ├── 📂 dto
+ | └── 📂 handler
+ ├── 📂 resolver
+ └── 📂 util
+ 📂 repository
+ 📂 service
+ 📂 vo
+ - Application.java
+```
+
+
+
+## 📝ERD
+
+
+
+
+## 💻 Build & Run
+1. 빌드
+```
+$ ./gradlew build
+```
+2. 빌드된 파일 (*.jar) 실행
+```
+$ fairer-0.0.1-SNAPSHOT.jar
+$ java -jar fairer-0.0.1-SNAPSHOT.jar
+```
+
+
+
+
+## 📢 Commit message
+
+
+`feat` : 새로운 기능에 대한 커밋
+
+`fix` : 버그 수정에 대한 커밋
+
+`refactor` : 새로운 기능 추가나 수정 없이 기존 코드 리팩토링
+
+`docs` : 문서화에 대한 커밋
+
+
+
+
+## 📞 Contact
+[](https://www.facebook.com/fairer.official)
+[](https://www.instagram.com/fairer.official/)
diff --git a/appspec.yml b/appspec.yml
deleted file mode 100644
index 7588c25c..00000000
--- a/appspec.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-version: 0.0
-os: linux
-
-files:
- - source: /deploy
- destination: /home/ec2-user
-permissions:
- - object: /home/ec2-user
- owner: ec2-user
- group: ec2-user
- mode: 755
-hooks:
- AfterInstall:
- - location: deploy.sh
- timeout: 60
- runas: ec2-user
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index ae293601..15128f2c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,99 +1,35 @@
-plugins {
- id 'org.springframework.boot' version '2.6.5'
- id 'io.spring.dependency-management' version '1.0.11.RELEASE'
- // querydsl 추가
- id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
- id 'java'
-}
-
-group = 'com.depromeet'
-version = '0.0.1-SNAPSHOT'
-sourceCompatibility = '11'
-
-configurations {
- compileOnly {
- extendsFrom annotationProcessor
+buildscript {
+ repositories {
+ mavenCentral()
}
-}
-
-ext{
- set('springCloudVersion', "2021.0.2")
-}
-
-dependencyManagement {
- imports {
- mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
+ dependencies {
+ classpath("org.springframework.boot:spring-boot-gradle-plugin:2.6.5")
+ classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
}
}
-repositories {
- mavenCentral()
+allprojects {
+ group = 'com.depromeet'
+ version = '0.0.1-SNAPSHOT'
}
-dependencies {
- implementation 'org.springframework.boot:spring-boot-starter-web'
- implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
- implementation 'org.springframework.boot:spring-boot-starter-security'
- implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
- implementation 'org.springframework.boot:spring-boot-starter-validation'
-
- //mysql connector
- implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.28'
-
- //modelMapper
- implementation group: 'org.modelmapper', name: 'modelmapper', version: '3.1.0'
-
- //lucy
- implementation group: 'com.navercorp.lucy', name: 'lucy-xss-servlet', version: '2.0.1'
-
- //jwt
- implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.2'
-
- //swagger
- implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
-
- implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2'
- implementation 'org.jetbrains:annotations:20.1.0'
- compileOnly 'org.projectlombok:lombok'
- annotationProcessor 'org.projectlombok:lombok'
-
- testImplementation 'org.springframework.boot:spring-boot-starter-test'
+subprojects {
+ apply plugin: 'java'
+ apply plugin: 'org.springframework.boot'
+ apply plugin: 'io.spring.dependency-management'
- // feign
- implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
+ sourceCompatibility = '11'
- // logger
- implementation 'org.slf4j:jcl-over-slf4j'
- implementation 'ch.qos.logback:logback-classic'
-
- // querydsl
- implementation 'com.querydsl:querydsl-jpa'
-}
-
-tasks.named('test') {
- useJUnitPlatform()
-}
-
-jar {
- enabled = false
-}
-
-// querydsl
-def querydslDir = "$buildDir/generated/querydsl"
+ repositories {
+ mavenCentral()
+ }
-querydsl {
- library = "com.querydsl:querydsl-apt"
- jpa = true
- querydslSourcesDir = querydslDir
-}
-sourceSets {
- main.java.srcDir querydslDir
-}
-configurations {
- querydsl.extendsFrom compileClasspath
+ dependencies {
+ //mysql connector
+ implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.28'
-}
-compileQuerydsl {
- options.annotationProcessorPath = configurations.querydsl
-}
-// querydsl 끝
+ implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2'
+ compileOnly 'org.projectlombok:lombok'
+ annotationProcessor 'org.projectlombok:lombok'
+ }
+}
\ No newline at end of file
diff --git a/deploy.sh b/deploy.sh
deleted file mode 100644
index 04f86140..00000000
--- a/deploy.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-# deploy.sh
-#!/usr/bin/env bash
-
-REPOSITORY=/home/ec2-user
-cd $REPOSITORY
-
-JAR_NAME=fairer-dev.jar
-JAR_PATH=$REPOSITORY/$JAR_NAME
-
-CURRENT_PID=$(pgrep -f $JAR_NAME)
-
-if ! [ -z $CURRENT_PID ]
-then
- kill $CURRENT_PID
- sleep 5
-fi
-
-nohup java -jar -Duser.timezone="Asia/Seoul" -Dspring.profiles.active=dev $JAR_PATH &
\ No newline at end of file
diff --git a/fairer-api/build.gradle b/fairer-api/build.gradle
new file mode 100644
index 00000000..73f87222
--- /dev/null
+++ b/fairer-api/build.gradle
@@ -0,0 +1,107 @@
+import java.text.SimpleDateFormat
+
+plugins {
+ // querydsl 추가
+ id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
+ // jib
+ id 'com.google.cloud.tools.jib' version '3.2.1'
+}
+
+jib {
+ from {
+ image = "adoptopenjdk/openjdk11:centos-jre"
+ }
+ container {
+ environment = [TZ:"Asia/Seoul"]
+ }
+ to {
+ image = "registry.hub.docker.com/fairerbe/fairer-dev-repo"
+ tags = ['latest', new SimpleDateFormat('yyyyMMddHHmmss').format(System.currentTimeMillis())] // 2개의 태그에 모두 push
+ }
+ container {
+ creationTime = "USE_CURRENT_TIMESTAMP"
+ jvmFlags = ['-Dspring.profiles.active=dev', '-XX:+UseContainerSupport', '-Dfile.encoding=UTF-8', '-Duser.timezone="Asia/Seoul"']
+ }
+}
+
+group = 'com.depromeet'
+version = '0.0.1-SNAPSHOT'
+sourceCompatibility = '11'
+
+configurations {
+ compileOnly {
+ extendsFrom annotationProcessor
+ }
+}
+
+ext{
+ set('springCloudVersion', "2021.0.2")
+}
+
+dependencyManagement {
+ imports {
+ mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
+ }
+}
+
+dependencies {
+ implementation 'org.springframework.boot:spring-boot-starter-web'
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+ implementation 'org.springframework.boot:spring-boot-starter-security'
+ implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
+ implementation 'org.springframework.boot:spring-boot-starter-validation'
+ implementation 'org.springframework.boot:spring-boot-starter-aop'
+
+ //firebase sdk
+ implementation 'com.google.firebase:firebase-admin:9.0.0'
+
+ //modelMapper
+ implementation group: 'org.modelmapper', name: 'modelmapper', version: '3.1.0'
+
+ //lucy
+ implementation group: 'com.navercorp.lucy', name: 'lucy-xss-servlet', version: '2.0.1'
+
+ //jwt
+ implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.2'
+
+ //swagger
+ implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
+
+ implementation 'org.jetbrains:annotations:20.1.0'
+
+ testImplementation 'org.springframework.boot:spring-boot-starter-test'
+
+ // feign
+ implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
+
+ // querydsl
+ implementation 'com.querydsl:querydsl-jpa'
+}
+
+tasks.named('test') {
+ useJUnitPlatform()
+}
+
+jar {
+ enabled = false
+}
+
+// querydsl
+def querydslDir = "$buildDir/generated/querydsl"
+
+querydsl {
+ library = "com.querydsl:querydsl-apt"
+ jpa = true
+ querydslSourcesDir = querydslDir
+}
+sourceSets {
+ main.java.srcDir querydslDir
+}
+configurations {
+ querydsl.extendsFrom compileClasspath
+
+}
+compileQuerydsl {
+ options.annotationProcessorPath = configurations.querydsl
+}
+// querydsl 끝
diff --git a/src/main/java/com/depromeet/fairer/Application.java b/fairer-api/src/main/java/com/depromeet/fairer/Application.java
similarity index 84%
rename from src/main/java/com/depromeet/fairer/Application.java
rename to fairer-api/src/main/java/com/depromeet/fairer/Application.java
index 602efab0..f06f4949 100644
--- a/src/main/java/com/depromeet/fairer/Application.java
+++ b/fairer-api/src/main/java/com/depromeet/fairer/Application.java
@@ -3,8 +3,10 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
+import org.springframework.scheduling.annotation.EnableAsync;
@EnableJpaAuditing
+@EnableAsync
@SpringBootApplication
public class Application {
diff --git a/src/main/java/com/depromeet/fairer/api/HouseWorkController.java b/fairer-api/src/main/java/com/depromeet/fairer/api/HouseWorkController.java
similarity index 55%
rename from src/main/java/com/depromeet/fairer/api/HouseWorkController.java
rename to fairer-api/src/main/java/com/depromeet/fairer/api/HouseWorkController.java
index 31641cc3..3ff9e09a 100644
--- a/src/main/java/com/depromeet/fairer/api/HouseWorkController.java
+++ b/fairer-api/src/main/java/com/depromeet/fairer/api/HouseWorkController.java
@@ -4,6 +4,7 @@
import com.depromeet.fairer.domain.member.Member;
import com.depromeet.fairer.dto.member.MemberDto;
import com.depromeet.fairer.global.resolver.RequestMemberId;
+import com.depromeet.fairer.global.util.DateTimeUtils;
import com.depromeet.fairer.service.housework.HouseWorkService;
import com.depromeet.fairer.dto.housework.request.HouseWorksCreateRequestDto;
import com.depromeet.fairer.dto.housework.request.HouseWorkUpdateRequestDto;
@@ -11,6 +12,7 @@
import com.depromeet.fairer.dto.housework.response.*;
import com.depromeet.fairer.service.member.MemberService;
+import com.depromeet.fairer.service.team.TeamService;
import com.depromeet.fairer.vo.houseWork.HouseWorkUpdateVo;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -25,9 +27,10 @@
import javax.validation.Valid;
import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@@ -38,18 +41,20 @@
public class HouseWorkController {
private final HouseWorkService houseWorkService;
private final MemberService memberService;
+ private final TeamService teamService;
private final ModelMapper modelMapper;
@Tag(name = "houseWorks")
@ApiOperation(value = "집안일 생성 API ")
@PostMapping("")
- public ResponseEntity createHouseWorks(@ApiIgnore @RequestMemberId Long memberId, @RequestBody @Valid HouseWorksCreateRequestDto dto) {
+ public ResponseEntity createHouseWorks(@ApiIgnore @RequestMemberId Long memberId,
+ @RequestBody @Valid HouseWorksCreateRequestDto dto) {
List houseWorkList = houseWorkService.createHouseWorks(memberId, dto.getHouseWorks());
return new ResponseEntity<>(new HouseWorksCreateResponseDto(houseWorkList), HttpStatus.CREATED);
}
@Tag(name = "houseWorks")
- @ApiOperation(value = "집안일 수정 API ")
+ @ApiOperation(value = "집안일 수정 API")
@PutMapping("/{houseWorkId}")
public ResponseEntity editHouseWork(@ApiIgnore @RequestMemberId Long memberId,
@RequestBody @Valid HouseWorkUpdateRequestDto dto,
@@ -74,9 +79,10 @@ public ResponseEntity> deleteHouseWork(
@Tag(name = "houseWorks")
@ApiOperation(value = "날짜별 집안일 조회", notes = "본인 포함 팀원들의 집안일까지 모두 조회")
@GetMapping(value = "")
+ @Deprecated
public ResponseEntity> getHouseWork(@RequestParam("scheduledDate") String scheduledDate,
@ApiIgnore @RequestMemberId Long memberId) {
- LocalDate scheduledDateParse = LocalDate.parse(scheduledDate, DateTimeFormatter.ISO_DATE);
+ LocalDate scheduledDateParse = DateTimeUtils.stringToLocalDate(scheduledDate);
List members = memberService.getMemberList(memberId);
@@ -100,6 +106,57 @@ public ResponseEntity> getHouseWork(@RequestParam
return ResponseEntity.ok(houseWorkDateResponseDtos);
}
+ @Tag(name = "houseWorks")
+ @ApiOperation(value = "팀원의 특정 기간 집안일 목록 조회", notes = "본인이 속한 팀의 팀원의 특정 기간 집안일 목록 조회")
+ @GetMapping("/list/member/{teamMemberId}")
+ public ResponseEntity