Skip to content

Commit

Permalink
Merge pull request #438 from team-yello/develop
Browse files Browse the repository at this point in the history
[feat] event 조회 명세서 배포
  • Loading branch information
euije authored Feb 6, 2024
2 parents e2bcbd2 + d04db7b commit 8aeea00
Show file tree
Hide file tree
Showing 157 changed files with 6,564 additions and 4,130 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,6 @@ monitoring/prometheus/volume
monitoring/grafana

src/main/resources/application-local.yml

### QueryDSL ###
src/main/generated/
34 changes: 12 additions & 22 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@ buildscript {

plugins {
id 'java'
id 'org.springframework.boot' version '2.7.4'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
id 'org.springframework.boot' version '3.2.2'
id 'io.spring.dependency-management' version '1.1.4'
id "org.asciidoctor.jvm.convert" version "3.3.2"
id 'jacoco'
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}

group = 'com.yello'
Expand Down Expand Up @@ -39,13 +38,16 @@ repositories {
}

dependencies {
// Properties Migrator
runtimeOnly "org.springframework.boot:spring-boot-properties-migrator"

implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// Repositories
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.amqp:spring-rabbit:2.3.12'
implementation 'org.springframework.amqp:spring-rabbit:3.1.1'

runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.mysql:mysql-connector-j:8.0.31'
Expand Down Expand Up @@ -85,7 +87,7 @@ dependencies {
asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.mockito:mockito-inline'
testImplementation 'org.mockito:mockito-inline:5.2.0'

// jwt decode
implementation 'org.bouncycastle:bcprov-jdk15on:1.69'
Expand All @@ -97,9 +99,12 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-aop'

// querydsl
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
implementation "com.querydsl:querydsl-core:${queryDslVersion}"
annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}:jakarta"
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
implementation "jakarta.annotation:jakarta.annotation-api"
implementation "com.querydsl:querydsl-codegen:${queryDslVersion}"
}

asciidoctor {
Expand Down Expand Up @@ -142,21 +147,6 @@ jacocoTestReport {
// finalizedBy 'jacocoTestCoverageVerification'
}

// QueryDsl
def querydslDir = "$buildDir/generated/querydsl"

querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}

compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}

//jacocoTestCoverageVerification {
// violationRules {
// rule {
Expand Down
37 changes: 37 additions & 0 deletions src/docs/asciidoc/find-event.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
:reproducible:
== 공지 조회

=== 요청

include::{snippets}/api/v1/event/1/http-request.adoc[]

=== 응답

include::{snippets}/api/v1/event/1/http-response.adoc[]

include::{snippets}/api/v1/event/2/http-response.adoc[]

include::{snippets}/api/v1/event/3/http-response.adoc[]

=== 주의

- data: *Response*[]
- *Response*
- tag : "LUNCH_EVENT" | "ADMOB"
* LUNCH_EVENT에 해당하는 *Response*가 없으면 Render 해주지 말아주세요
- startDate : "2024-01-01T00:00:00+09:00"
- endDate : "2024-12-31T00:00:00+09:00"
- title : "점심 시간 깜짝 선물!"
- subTitle : "평일 12-14시 최대 1회까지 참여 가능"
- animationList : [{...json1...}, {...json2...}]
- eventReward: *EventReward* | null
* 해당 필드가 **null**일 시, 이벤트 보여주지 않도록 해주세요.

=== NOTE

- *!* LUNCH_EVENT에 해당하는 Response가 없거나, LUNCH_EVENT Response의 eventReward가 null이면, 메인화면 접속시, 이벤트 화면을 띄워주지마세요.
- 이벤트 참여 요청, 이벤트 보상 반환 API 문서 작성중..

=== CHANGELOG

- 2024.02.06 릴리즈
2 changes: 1 addition & 1 deletion src/docs/asciidoc/find-friend-votes-v2.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v2/vote/friend/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v2/vote/friend/request-parameters.adoc[]
include::{snippets}/api/v2/vote/friend/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/find-friend-votes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/vote/findAllFriendVotes/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/vote/findAllFriendVotes/request-parameters.adoc[]
include::{snippets}/api/v1/vote/findAllFriendVotes/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/find-friends.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/friend/findAllFriend/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/friend/findAllFriend/request-parameters.adoc[]
include::{snippets}/api/v1/friend/findAllFriend/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/find-group-friends.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/friend/findAllRecommendSchoolFriends/http-request.ado

=== 요청 파라미터

include::{snippets}/api/v1/friend/findAllRecommendSchoolFriends/request-parameters.adoc[]
include::{snippets}/api/v1/friend/findAllRecommendSchoolFriends/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/find-kakao-friends.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/friend/findAllRecommendKakaoFriends/http-request.adoc

=== 요청 파라미터

include::{snippets}/api/v1/friend/findAllRecommendKakaoFriends/request-parameters.adoc[]
include::{snippets}/api/v1/friend/findAllRecommendKakaoFriends/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/find-onboarding-friends.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/auth/findOnBoardingFriends/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/auth/findOnBoardingFriends/request-parameters.adoc[]
include::{snippets}/api/v1/auth/findOnBoardingFriends/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/find-votes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/vote/findAllMyVotes/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/vote/findAllMyVotes/request-parameters.adoc[]
include::{snippets}/api/v1/vote/findAllMyVotes/query-parameters.adoc[]

=== 응답

Expand Down
8 changes: 6 additions & 2 deletions src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@

* link:find-friend-votes.html[친구 투표 전체 조회하기, 2024-01-09]

* ⬆️ link:find-friend-votes-v2.html[친구 투표 전체 조회하기 v2, 2024-01-30]
* 🆕 link:find-friend-votes-v2.html[친구 투표 전체 조회하기 v2, 2024-01-30]

* link:get-unread-vote.html[읽지 않은 쪽지 개수 조회하기]

Expand Down Expand Up @@ -106,4 +106,8 @@

=== Notice API

* 🆕 link:find-notice.html[공지 조회, 2024-01-29]
* 🆕 link:find-notice.html[공지 조회, 2024-01-29]

=== Event API

* 🆕 link:find-event.html[공지 조회, 2024-02-06]
2 changes: 0 additions & 2 deletions src/docs/asciidoc/reissue-token.adoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
:reproducible:
== 토큰 재발급

operation::api/v1/auth/reIssueToken[snippets='http-request,http-response']

=== 요청

include::{snippets}/api/v1/auth/reIssueToken/http-request.adoc[]
Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/search-department.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/auth/findAllUnivDepartmentName/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/auth/findAllUnivDepartmentName/request-parameters.adoc[]
include::{snippets}/api/v1/auth/findAllUnivDepartmentName/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/search-friend.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/friend/searchFriend/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/friend/searchFriend/request-parameters.adoc[]
include::{snippets}/api/v1/friend/searchFriend/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/search-high-class.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/auth/findGroupIdByName/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/auth/findGroupIdByName/request-parameters.adoc[]
include::{snippets}/api/v1/auth/findGroupIdByName/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/search-high-name.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/auth/findAllHighSchoolName/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/auth/findAllHighSchoolName/request-parameters.adoc[]
include::{snippets}/api/v1/auth/findAllHighSchoolName/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/search-school.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/auth/findAllUnivName/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/auth/findAllUnivName/request-parameters.adoc[]
include::{snippets}/api/v1/auth/findAllUnivName/query-parameters.adoc[]

=== 응답

Expand Down
2 changes: 1 addition & 1 deletion src/docs/asciidoc/validate-yelloid.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{snippets}/api/v1/auth/getYelloIdValidation/http-request.adoc[]

=== 요청 파라미터

include::{snippets}/api/v1/auth/getYelloIdValidation/request-parameters.adoc[]
include::{snippets}/api/v1/auth/getYelloIdValidation/query-parameters.adoc[]

=== 응답

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@
import static com.yello.server.global.common.SuccessCode.DELETE_COOLDOWN_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.DELETE_QUESTION_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.DELETE_USER_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.EVENT_CREATE_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.EVENT_REWARD_CREATE_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.LOGIN_USER_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.NOTICE_CREATE_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.NOTICE_READ_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.NOTICE_UPDATE_DETAIL_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.READ_COOLDOWN_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.READ_QUESTION_ADMIN_SUCCESS;
import static com.yello.server.global.common.SuccessCode.READ_QUESTION_DETAIL_ADMIN_SUCCESS;
Expand All @@ -17,7 +22,11 @@
import static com.yello.server.global.common.factory.PaginationFactory.createPageableByNameSortDescLimitTen;
import static com.yello.server.global.common.factory.PaginationFactory.createPageableLimitTen;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.yello.server.domain.admin.dto.request.AdminEventCreateRequest;
import com.yello.server.domain.admin.dto.request.AdminEventRewardCreateRequest;
import com.yello.server.domain.admin.dto.request.AdminLoginRequest;
import com.yello.server.domain.admin.dto.request.AdminNoticeCreateRequest;
import com.yello.server.domain.admin.dto.request.AdminQuestionVoteRequest;
import com.yello.server.domain.admin.dto.request.AdminUserDetailRequest;
import com.yello.server.domain.admin.dto.response.AdminConfigurationResponse;
Expand All @@ -30,12 +39,14 @@
import com.yello.server.domain.admin.dto.response.AdminUserResponse;
import com.yello.server.domain.admin.entity.AdminConfigurationType;
import com.yello.server.domain.admin.service.AdminService;
import com.yello.server.domain.notice.entity.Notice;
import com.yello.server.domain.user.entity.User;
import com.yello.server.global.common.annotation.AccessTokenUser;
import com.yello.server.global.common.dto.BaseResponse;
import com.yello.server.global.common.dto.EmptyObject;
import com.yello.server.infrastructure.firebase.dto.request.NotificationCustomMessage;
import com.yello.server.infrastructure.firebase.service.NotificationService;
import java.util.List;
import javax.annotation.Nullable;
import lombok.RequiredArgsConstructor;
import lombok.val;
Expand Down Expand Up @@ -168,4 +179,38 @@ public BaseResponse<EmptyObject> postConfigurations(

return BaseResponse.success(CONFIGURATION_UPDATE_ADMIN_SUCCESS, data);
}

@GetMapping("/notice")
public BaseResponse<List<Notice>> getNotices(@AccessTokenUser User user) {
val data = adminService.getNotices(user.getId());
return BaseResponse.success(NOTICE_READ_ADMIN_SUCCESS, data);
}

@PostMapping("/notice")
public BaseResponse<EmptyObject> createNotice(@AccessTokenUser User user,
@RequestBody AdminNoticeCreateRequest request) {
val data = adminService.createNotice(user.getId(), request);
return BaseResponse.success(NOTICE_CREATE_ADMIN_SUCCESS, data);
}

@PostMapping("/notice/{id}")
public BaseResponse<EmptyObject> updateNotice(@AccessTokenUser User user, @PathVariable("id") Long noticeId,
@RequestBody AdminNoticeCreateRequest request) {
val data = adminService.updateNotice(user.getId(), noticeId, request);
return BaseResponse.success(NOTICE_UPDATE_DETAIL_ADMIN_SUCCESS, data);
}

@PostMapping("/event")
public BaseResponse<EmptyObject> createEvent(@AccessTokenUser User user,
@RequestBody AdminEventCreateRequest request) throws JsonProcessingException {
val data = adminService.createEvent(user.getId(), request);
return BaseResponse.success(EVENT_CREATE_ADMIN_SUCCESS, data);
}

@PostMapping("/event/reward")
public BaseResponse<EmptyObject> createEventReward(@AccessTokenUser User user,
@RequestBody AdminEventRewardCreateRequest request) {
val data = adminService.createEventReward(user.getId(), request);
return BaseResponse.success(EVENT_REWARD_CREATE_ADMIN_SUCCESS, data);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.yello.server.domain.admin.dto.request;

import com.yello.server.domain.event.entity.EventRewardRandomType;
import com.yello.server.domain.event.entity.EventType;
import java.time.OffsetTime;
import java.util.List;

public record AdminEventCreateRequest(
EventType tag,
String startDate,
String endDate,
String title,
String subTitle,
List<Object> animationList,
List<EventRewardVO> eventReward
) {

public record EventRewardVO(
OffsetTime startTime,
OffsetTime endTime,
Long rewardCount,
List<EventRewardItemVO> eventRewardItem
) {

}

public record EventRewardItemVO(
String tag,
Integer eventRewardProbability,
EventRewardRandomType randomTag
) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.yello.server.domain.admin.dto.request;

public record AdminEventRewardCreateRequest(
String tag,
Long maxRewardValue,
Long minRewardValue,
String title,
String image
) {

}
Loading

0 comments on commit 8aeea00

Please sign in to comment.