Skip to content

Commit

Permalink
Merge pull request #129 from onetime-with-members/test
Browse files Browse the repository at this point in the history
[deploy] : 제2회 큐시즘 전시회를 위한 배포를 진행한다
  • Loading branch information
bbbang105 authored Dec 6, 2024
2 parents 486927f + 0035673 commit 2bb9186
Show file tree
Hide file tree
Showing 13 changed files with 495 additions and 35 deletions.
12 changes: 10 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ dependencies {
// Web
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-test'
// DB
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j'
Expand Down Expand Up @@ -60,6 +60,14 @@ dependencies {
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc:3.0.0'
testImplementation 'com.squareup.okhttp3:mockwebserver'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'
// AWS S3
implementation 'io.awspring.cloud:spring-cloud-aws-starter:3.1.1'
implementation 'com.amazonaws:aws-java-sdk-s3:1.12.767'
// org.json
implementation 'org.json:json:20231013'
// Zxing
implementation 'com.google.zxing:core:3.5.1'
implementation 'com.google.zxing:javase:3.5.1'
}

// QueryDSL 디렉토리
Expand Down Expand Up @@ -126,4 +134,4 @@ tasks.register('copyDocument', Copy) {

tasks.named("build") {
dependsOn copyDocument
}
}
32 changes: 24 additions & 8 deletions src/main/java/side/onetime/controller/EventController.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class EventController {
private final EventService eventService;

/**
* 이벤트 생성 API
* 이벤트 생성 API.
*
* 이 API는 새로운 이벤트를 생성합니다. 인증된 유저와 익명 유저 모두 이벤트를 생성할 수 있으며,
* 인증된 유저의 경우 추가적인 정보가 저장됩니다.
Expand All @@ -45,7 +45,7 @@ public ResponseEntity<ApiResponse<CreateEventResponse>> createEvent(
}

/**
* 이벤트 조회 API
* 이벤트 조회 API.
*
* 이 API는 특정 이벤트의 세부 정보를 조회합니다. 이벤트의 제목, 시간, 카테고리 등의 정보를 제공하며
* 인증된 유저일 경우 추가적인 정보가 포함될 수 있습니다.
Expand All @@ -65,7 +65,7 @@ public ResponseEntity<ApiResponse<GetEventResponse>> getEvent(
}

/**
* 참여자 조회 API
* 참여자 조회 API.
*
* 이 API는 특정 이벤트에 참여한 모든 참여자의 이름 목록을 조회합니다.
*
Expand All @@ -81,7 +81,7 @@ public ResponseEntity<ApiResponse<GetParticipantsResponse>> getParticipants(
}

/**
* 가장 많이 되는 시간 조회 API
* 가장 많이 되는 시간 조회 API.
*
* 이 API는 특정 이벤트에서 가장 많이 가능한 시간대를 조회하여, 가능 인원과 해당 시간대 정보를 제공합니다.
*
Expand All @@ -97,7 +97,7 @@ public ResponseEntity<ApiResponse<List<GetMostPossibleTime>>> getMostPossibleTim
}

/**
* 유저 참여 이벤트 목록 조회 API
* 유저 참여 이벤트 목록 조회 API.
*
* 이 API는 인증된 유저가 참여한 모든 이벤트 목록을 조회합니다. 유저의 참여 상태, 이벤트 정보 등이 포함됩니다.
*
Expand All @@ -113,7 +113,7 @@ public ResponseEntity<ApiResponse<List<GetUserParticipatedEventsResponse>>> getU
}

/**
* 유저가 생성한 이벤트 삭제 API
* 유저가 생성한 이벤트 삭제 API.
*
* 이 API는 인증된 유저가 생성한 특정 이벤트를 삭제합니다.
*
Expand All @@ -131,7 +131,7 @@ public ResponseEntity<ApiResponse<SuccessStatus>> removeUserCreatedEvent(
}

/**
* 유저가 생성한 이벤트 제목 수정 API
* 유저가 생성한 이벤트 제목 수정 API.
*
* 이 API는 인증된 유저가 생성한 특정 이벤트의 제목을 수정합니다.
*
Expand All @@ -149,4 +149,20 @@ public ResponseEntity<ApiResponse<SuccessStatus>> modifyUserCreatedEventTitle(
eventService.modifyUserCreatedEventTitle(authorizationHeader, eventId, modifyUserCreatedEventTitleRequest);
return ApiResponse.onSuccess(SuccessStatus._MODIFY_USER_CREATED_EVENT_TITLE);
}
}

/**
* 이벤트 QR Code 조회 API.
*
* 이 API는 이벤트로 이동할 수 있는 QR Code 이미지를 반환합니다.
*
* @param eventId QR Code를 조회할 이벤트의 ID
* @return QR Code 이미지 URL
*/
@GetMapping("/qr/{event_id}")
public ResponseEntity<ApiResponse<GetEventQrCodeResponse>> getEventQrCode(
@PathVariable("event_id") String eventId) {

GetEventQrCodeResponse response = eventService.getEventQrCode(eventId);
return ApiResponse.onSuccess(SuccessStatus._GET_EVENT_QR_CODE, response);
}
}
10 changes: 8 additions & 2 deletions src/main/java/side/onetime/domain/Event.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.BatchSize;
import side.onetime.domain.enums.Category;
import side.onetime.global.common.dao.BaseEntity;

Expand Down Expand Up @@ -38,6 +37,9 @@ public class Event extends BaseEntity {
@Enumerated(EnumType.STRING)
private Category category;

@Column(name = "qr_file_name")
private String qrFileName;

@OneToMany(mappedBy = "event",cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Member> members;

Expand All @@ -59,4 +61,8 @@ public Event(UUID eventId, String title, String startTime, String endTime, Categ
public void updateTitle(String title) {
this.title = title;
}
}

public void addQrFileName(String qrFileName) {
this.qrFileName = qrFileName;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package side.onetime.dto.event.response;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public record GetEventQrCodeResponse(
String qrCodeImgUrl
) {
public static GetEventQrCodeResponse from(String qrCodeImgUrl) {
return new GetEventQrCodeResponse(
qrCodeImgUrl
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
public enum EventErrorStatus implements BaseErrorCode {
_NOT_FOUND_EVENT(HttpStatus.NOT_FOUND, "EVENT-001", "이벤트를 찾을 수 없습니다."),
_IS_NOT_DATE_FORMAT(HttpStatus.BAD_REQUEST, "EVENT-002", "날짜 이벤트에 요일을 입력할 수 없습니다."),
_IS_NOT_DAY_FORMAT(HttpStatus.BAD_REQUEST, "EVENT-003", "요일 이벤트에 날짜를 입력할 수 없습니다.")
_IS_NOT_DAY_FORMAT(HttpStatus.BAD_REQUEST, "EVENT-003", "요일 이벤트에 날짜를 입력할 수 없습니다."),
_NOT_FOUND_EVENT_QR_CODE(HttpStatus.NOT_FOUND, "EVENT-004", "이벤트 QR 코드를 찾을 수 없습니다."),
_FAILED_GENERATE_QR_CODE(HttpStatus.INTERNAL_SERVER_ERROR, "EVENT-005", "QR 코드를 생성하고 업로드 하는 과정에서 문제가 발생했습니다."),
;

private final HttpStatus httpStatus;
Expand All @@ -36,4 +38,4 @@ public ErrorReasonDto getReasonHttpStatus() {
.message(message)
.build();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public enum SuccessStatus implements BaseCode {
_GET_USER_PARTICIPATED_EVENTS(HttpStatus.OK, "200", "유저 참여 이벤트 목록 조회에 성공했습니다."),
_REMOVE_USER_CREATED_EVENT(HttpStatus.OK, "200", "유저가 생성한 이벤트 삭제에 성공했습니다."),
_MODIFY_USER_CREATED_EVENT_TITLE(HttpStatus.OK, "200", "유저가 생성한 이벤트 제목 수정에 성공했습니다."),
_GET_EVENT_QR_CODE(HttpStatus.OK, "200", "이벤트 QR 코드 조회에 성공했습니다."),
// Member
_REGISTER_MEMBER(HttpStatus.CREATED, "201", "멤버 등록에 성공했습니다."),
_LOGIN_MEMBER(HttpStatus.OK, "200", "멤버 로그인에 성공했습니다."),
Expand Down Expand Up @@ -76,4 +77,4 @@ public ReasonDto getReasonHttpStatus() {
.message(message)
.build();
}
}
}
31 changes: 31 additions & 0 deletions src/main/java/side/onetime/global/config/S3Config.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package side.onetime.global.config;

import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class S3Config {

@Value("${spring.cloud.aws.credentials.access-key}")
private String accessKey;

@Value("${spring.cloud.aws.credentials.secret-key}")
private String secretKey;

@Value("${spring.cloud.aws.region.static}")
private String region;

@Bean
public AmazonS3 amazonS3() {
BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey);
return AmazonS3ClientBuilder.standard()
.withRegion(region)
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.build();
}
}
Loading

0 comments on commit 2bb9186

Please sign in to comment.