Skip to content

Commit

Permalink
πŸš€ :: Api-v0.1.4
Browse files Browse the repository at this point in the history
πŸš€ :: Api-v0.1.4
  • Loading branch information
ImNM authored Feb 10, 2023
2 parents 747aec9 + 9b1b629 commit a7d7362
Show file tree
Hide file tree
Showing 91 changed files with 1,091 additions and 239 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
@RequestMapping("/v1/auth")
@RequiredArgsConstructor
@Slf4j
@Tag(name = "인증 κ΄€λ ¨ 컨트둀러")
@Tag(name = "1-1. [인증]")
public class AuthController {

private final RegisterUseCase registerUseCase;
Expand All @@ -54,14 +54,14 @@ public class AuthController {
private final CookieGenerateHelper cookieGenerateHelper;

@Operation(summary = "kakao oauth λ§ν¬λ°œκΈ‰ (λ°±μ—”λ“œμš© )", description = "kakao 링크λ₯Ό λ°›μ•„λ³Όμˆ˜ μžˆμŠ΅λ‹ˆλ‹€.")
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@GetMapping("/oauth/kakao/link/test")
public OauthLoginLinkResponse getKakaoOauthLinkTest() {
return registerUseCase.getKaKaoOauthLinkTest();
}

@Operation(summary = "kakao oauth λ§ν¬λ°œκΈ‰ (ν΄λΌμ΄μ–ΈνŠΈμš©)", description = "kakao 링크λ₯Ό λ°›μ•„λ³Όμˆ˜ μžˆμŠ΅λ‹ˆλ‹€.")
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@GetMapping("/oauth/kakao/link")
public OauthLoginLinkResponse getKakaoOauthLink(
@RequestHeader(value = "referer", required = false) String referer,
Expand All @@ -84,7 +84,7 @@ public OauthLoginLinkResponse getKakaoOauthLink(
}

@Operation(summary = "카카였 code μš”μ²­λ°›λŠ” κ³³μž…λ‹ˆλ‹€. referer,hostλŠ” 건듀이지 λ§μ•„μ£Όμ„Έμš”!μ•ˆλ³΄λ‚΄μ…”λ„λ©λ‹ˆλ‹€.")
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@GetMapping("/oauth/kakao")
@ApiErrorCodeExample(KakaoKauthErrorCode.class)
public OauthTokenResponse getCredentialFromKaKao(
Expand All @@ -108,7 +108,7 @@ public OauthTokenResponse getCredentialFromKaKao(
}

@Operation(summary = "개발용 νšŒμ›κ°€μž…μž…λ‹ˆλ‹€ ν΄λΌμ΄μ–ΈνŠΈκ°€ λͺ°λΌλ„ λ©λ‹ˆλ‹€.", deprecated = true)
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@DevelopOnlyApi
@GetMapping("/oauth/kakao/develop")
public ResponseEntity<TokenAndUserResponse> developUserSign(@RequestParam("code") String code) {
Expand All @@ -119,15 +119,15 @@ public ResponseEntity<TokenAndUserResponse> developUserSign(@RequestParam("code"
}

@Operation(summary = "νšŒμ›κ°€μž…μ΄ κ°€λŠ₯ν•œμ§€ id token 으둜 ν™•μΈν•©λ‹ˆλ‹€.")
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@GetMapping("/oauth/kakao/register/valid")
public AvailableRegisterResponse kakaoAuthCheckRegisterValid(
@RequestParam("id_token") String token) {
return registerUseCase.checkAvailableRegister(token);
}

@Operation(summary = "id_token 으둜 νšŒμ›κ°€μž…μ„ ν•©λ‹ˆλ‹€.")
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@PostMapping("/oauth/kakao/register")
public ResponseEntity<TokenAndUserResponse> kakaoAuthCheckRegisterValid(
@RequestParam("id_token") String token,
Expand All @@ -141,7 +141,7 @@ public ResponseEntity<TokenAndUserResponse> kakaoAuthCheckRegisterValid(

@NotNull
@Operation(summary = "id_token 으둜 λ‘œκ·ΈμΈμ„ ν•©λ‹ˆλ‹€.")
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@PostMapping("/oauth/kakao/login")
public ResponseEntity<TokenAndUserResponse> kakaoOauthUserLogin(
@RequestParam("id_token") String token) {
Expand All @@ -152,7 +152,7 @@ public ResponseEntity<TokenAndUserResponse> kakaoOauthUserLogin(
}

@Operation(summary = "accessToken 으둜 oauth user 정보λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.")
@Tag(name = "카카였 oauth")
@Tag(name = "1-2. [카카였]")
@PostMapping("/oauth/kakao/info")
public OauthUserInfoResponse kakaoOauthUserInfo(
@RequestParam("access_token") String accessToken) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.springframework.web.bind.annotation.RestController;

@SecurityRequirement(name = "access-token")
@Tag(name = "μž₯λ°”κ΅¬λ‹ˆ κ΄€λ ¨ 컨트둀러")
@Tag(name = "5. [μž₯λ°”κ΅¬λ‹ˆ]")
@RestController
@RequestMapping("/v1/carts")
@RequiredArgsConstructor
Expand All @@ -28,42 +28,13 @@ public class CartController {
private final CreateCartUseCase createCartUseCase;
private final ReadCartUseCase readCartUseCase;

// @Operation(summary = "μƒν’ˆ 아이디에 닡변을 ν•΄μ•Όν•˜λŠ” μ˜΅μ…˜μ΄ μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.(μΆ”ν›„ μ•„μ΄ν…œ λ„λ©”μΈμœΌλ‘œ 이전?)")
// @GetMapping("/check/answer")
// public void createCartLines() {
// createOrderLineUseCase.execute(ticketItemId);
// }
@Operation(summary = "μƒν’ˆμ„ μž₯λ°”κ΅¬λ‹ˆμ— λ‹΄μŠ΅λ‹ˆλ‹€. μƒν’ˆμ— λ‹΅λ³€ν•΄μ•Όν•˜λŠ” 응닡이 μžˆλ‹€λ©΄, 응닡도 λ³΄λ‚΄μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.")
@ApiErrorExceptionsExample(CreateCartExceptionDocs.class)
@PostMapping
public CartResponse createCartLines(@RequestBody @Valid AddCartRequest addCartRequest) {
return createCartUseCase.execute(addCartRequest);
}

// @Operation(summary = "λ‚΄ μž₯λ°”κ΅¬λ‹ˆμ— λ‹΄κΈ΄ μƒν’ˆλ“€μ˜ λͺ©λ‘μ„ λΆˆλŸ¬μ˜΅λ‹ˆλ‹€.")
// @GetMapping
// public void createCartLines() {
// createOrderLineUseCase.execute(ticketItemId);
// }

// @Operation(summary = "μž₯λ°”κ΅¬λ‹ˆμ— 담은 μƒν’ˆμ˜ 정보λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€. μ˜΅μ…˜μ΄μžˆμœΌλ©΄ μ˜΅μ…˜λ§ˆλ‹€ λ‹€λ₯Έ 라인을 κ°€μ§‘λ‹ˆλ‹€.")
// @GetMapping("/lines/{line_id}")
// public void getCartLineInfo(@PathVariable("line_id") Long ticketItemId) {
// createOrderLineUseCase.execute(ticketItemId);
// }

// @Operation(summary = "μž₯λ°”κ΅¬λ‹ˆμ— 담은 μƒν’ˆμ˜ μ˜΅μ…˜μ„")
// @GetMapping("/{cart_id}/lines/{line_id}/option")
// public void getItemOptions(@PathVariable("cart_id") Long cartId,@PathVariable("line_id")
// Long ticketItemId) {
// createOrderLineUseCase.execute(ticketItemId);
// }

// @Operation(summary = "ν‹°μΌ“μƒν’ˆμ˜ κ°―μˆ˜μ™€ μ‚¬μš©μžκ°€ μž…λ ₯ν•œ μ˜΅μ…˜μ„ 가진 orderLine 을 λ§Œλ“­λ‹ˆλ‹€.")
// @PostMapping("/option")
// public void createOrderLine(@PathVariable("line_id") Long ticketItemId) {
// createOrderLineUseCase.execute(ticketItemId);
// }
@Operation(summary = "μ‚¬μš©μžκ°€ μ΅œκ·Όμ— λ§Œλ“€μ—ˆλ˜ μž₯λ°”κ΅¬λ‹ˆλ₯Ό λΆˆλŸ¬μ˜΅λ‹ˆλ‹€. μ—†μœΌλ©΄ data null (κ΅¬ν˜„ μ•ˆν•΄λ„ 됨)")
@GetMapping("/recent")
public CartResponse getRecentMyCart() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import org.springframework.web.bind.annotation.RestController;

@SecurityRequirement(name = "access-token")
@Tag(name = "응원톑 컨트둀러")
@Tag(name = "9. [응원톑]")
@RestController
@RequestMapping("/v1/events/{eventId}/comments")
@Validated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public Long getCurrentUserId() {
}

public User getCurrentUser() {
User user = userAdaptor.queryUser(getCurrentUserId());
return user;
return userAdaptor.queryUser(getCurrentUserId());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.springframework.web.bind.annotation.*;

@SecurityRequirement(name = "access-token")
@Tag(name = "쿠폰 κ΄€λ ¨ 컨트둀러")
@Tag(name = "a0. [쿠폰]")
@RestController
@RequestMapping("/v1/coupons")
@RequiredArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package band.gosrock.api.email.service;


import band.gosrock.domain.domains.host.domain.HostRole;
import band.gosrock.infrastructure.config.mail.dto.EmailUserInfo;
import band.gosrock.infrastructure.config.ses.AwsSesUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.thymeleaf.context.Context;

@Service
@RequiredArgsConstructor
@Slf4j
public class HostMasterChangeEmailService {
private final AwsSesUtils awsSesUtils;

public void execute(EmailUserInfo userInfo, String hostName, HostRole hostRole) {
Context context = new Context();
context.setVariable("userInfo", userInfo);
context.setVariable("hostName", hostName);
context.setVariable("role", hostRole.getValue());
log.info(hostName + " μ—μ„œ λ§ˆμŠ€ν„° λ³€κ²½ μ•Œλ¦Ό, " + userInfo); //
// todo : λ§ˆμŠ€ν„° λ³€κ²½ ν…œν”Œλ¦Ώ μΆ”κ°€
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package band.gosrock.api.email.service;


import band.gosrock.infrastructure.config.mail.dto.EmailUserInfo;
import band.gosrock.infrastructure.config.ses.AwsSesUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.thymeleaf.context.Context;

@Service
@RequiredArgsConstructor
@Slf4j
public class HostUserDisabledEmailService {
private final AwsSesUtils awsSesUtils;

public void execute(EmailUserInfo userInfo, String hostName) {
Context context = new Context();
context.setVariable("userInfo", userInfo);
context.setVariable("hostName", hostName);
log.info(hostName + " μ—μ„œ 좔방당함, " + userInfo);
// todo : ν˜ΈμŠ€νŠΈμ—μ„œ μΆ”λ°© ν…œν”Œλ¦Ώ μΆ”κ°€
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

@Service
@RequiredArgsConstructor
public class HostInviteEmailService {
public class HostUserInvitationEmailService {
private final AwsSesUtils awsSesUtils;

public void execute(EmailUserInfo userInfo, String hostName, HostRole hostRole) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package band.gosrock.api.email.service;


import band.gosrock.domain.domains.host.domain.HostRole;
import band.gosrock.infrastructure.config.mail.dto.EmailUserInfo;
import band.gosrock.infrastructure.config.ses.AwsSesUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.thymeleaf.context.Context;

@Service
@RequiredArgsConstructor
@Slf4j
public class HostUserRoleChangeEmailService {
private final AwsSesUtils awsSesUtils;

public void execute(EmailUserInfo userInfo, String hostName, HostRole hostRole) {
Context context = new Context();
context.setVariable("userInfo", userInfo);
context.setVariable("hostName", hostName);
context.setVariable("role", hostRole.getValue());
log.info(hostName + " 의 μ—­ν•  λ³€κ²½ μ•Œλ¦Ό. " + userInfo); //
// todo : λ‹Ήμ‹ μ˜ 역할이 λ³€κ²½λ˜μ—ˆμŒμ„ μ•Œλ¦¬λŠ” ν…œν”Œλ¦Ώ μΆ”κ°€
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class OrderMailInfoHelper {
private final HostAdaptor hostAdaptor;

public OrderMailDto execute(String orderUuid) {
Order order = orderAdaptor.find(orderUuid);
Order order = orderAdaptor.findByOrderUuid(orderUuid);
User user = userAdaptor.queryUser(order.getUserId());
Event event = eventAdaptor.findById(order.getEventId());
Host host = hostAdaptor.findById(event.getHostId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import org.springframework.web.bind.annotation.*;

@SecurityRequirement(name = "access-token")
@Tag(name = "이벀트(곡연) κ΄€λ ¨ 컨트둀러")
@Tag(name = "3. [이벀트(곡연)]")
@RestController
@RequestMapping("/v1/events")
@RequiredArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package band.gosrock.api.event.handler;


import band.gosrock.domain.common.alarm.EventSlackAlarm;
import band.gosrock.domain.common.events.event.EventContentChangeEvent;
import band.gosrock.domain.domains.event.adaptor.EventAdaptor;
import band.gosrock.domain.domains.event.domain.Event;
import band.gosrock.domain.domains.host.adaptor.HostAdaptor;
import band.gosrock.domain.domains.host.domain.Host;
import band.gosrock.infrastructure.config.slack.SlackMessageProvider;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.event.TransactionPhase;
import org.springframework.transaction.event.TransactionalEventListener;

@Component
@RequiredArgsConstructor
@Slf4j
public class EventContentChangeEventHandler {
private final HostAdaptor hostAdaptor;
private final EventAdaptor eventAdaptor;
private final SlackMessageProvider slackMessageProvider;

@Async
@TransactionalEventListener(
classes = EventContentChangeEvent.class,
phase = TransactionPhase.AFTER_COMMIT)
public void handle(EventContentChangeEvent eventContentChangeEvent) {
final Host host = hostAdaptor.findById(eventContentChangeEvent.getHostId());
final Event event = eventAdaptor.findById(eventContentChangeEvent.getEventId());
final String message = EventSlackAlarm.changeContentOf(event);

slackMessageProvider.sendMessage(host.getSlackUrl(), message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package band.gosrock.api.event.handler;


import band.gosrock.domain.common.alarm.EventSlackAlarm;
import band.gosrock.domain.common.events.event.EventCreationEvent;
import band.gosrock.domain.domains.event.adaptor.EventAdaptor;
import band.gosrock.domain.domains.host.adaptor.HostAdaptor;
import band.gosrock.domain.domains.host.domain.Host;
import band.gosrock.infrastructure.config.slack.SlackMessageProvider;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.event.TransactionPhase;
import org.springframework.transaction.event.TransactionalEventListener;

@Component
@RequiredArgsConstructor
@Slf4j
public class EventCreationEventHandler {
private final HostAdaptor hostAdaptor;
private final EventAdaptor eventAdaptor;
private final SlackMessageProvider slackMessageProvider;

@Async
@TransactionalEventListener(
classes = EventCreationEvent.class,
phase = TransactionPhase.AFTER_COMMIT)
public void handle(EventCreationEvent eventCreationEvent) {
final Host host = hostAdaptor.findById(eventCreationEvent.getHostId());
final String message = EventSlackAlarm.creationOf(eventCreationEvent.getEventName());

slackMessageProvider.sendMessage(host.getSlackUrl(), message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package band.gosrock.api.event.handler;


import band.gosrock.domain.common.alarm.EventSlackAlarm;
import band.gosrock.domain.common.events.event.EventDeletionEvent;
import band.gosrock.domain.domains.event.adaptor.EventAdaptor;
import band.gosrock.domain.domains.event.domain.Event;
import band.gosrock.domain.domains.host.adaptor.HostAdaptor;
import band.gosrock.domain.domains.host.domain.Host;
import band.gosrock.infrastructure.config.slack.SlackMessageProvider;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.event.TransactionPhase;
import org.springframework.transaction.event.TransactionalEventListener;

@Component
@RequiredArgsConstructor
@Slf4j
public class EventDeletionEventHandler {
private final HostAdaptor hostAdaptor;
private final EventAdaptor eventAdaptor;
private final SlackMessageProvider slackMessageProvider;

@Async
@TransactionalEventListener(
classes = EventDeletionEvent.class,
phase = TransactionPhase.AFTER_COMMIT)
public void handle(EventDeletionEvent eventDeletionEvent) {
final Host host = hostAdaptor.findById(eventDeletionEvent.getHostId());
final Event event = eventAdaptor.findById(eventDeletionEvent.getEventId());
final String message = EventSlackAlarm.deletionOf(event);

slackMessageProvider.sendMessage(host.getSlackUrl(), message);
}
}
Loading

0 comments on commit a7d7362

Please sign in to comment.