Skip to content

Commit

Permalink
Merge pull request #68 from taking/taking
Browse files Browse the repository at this point in the history
Chore: 조직 초대 링크 기능, AccessDenied 에러 예외 처리 수정
  • Loading branch information
taking authored Nov 9, 2023
2 parents 8a7062d + 93a4af8 commit 8a0f1b6
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 26 deletions.
3 changes: 2 additions & 1 deletion nw/src/main/java/lab/cherry/nw/controller/OrgController.java
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,8 @@ public ResponseEntity<?> deleteOrganization(@PathVariable("id") String id) {

@GetMapping("/invite")
@Operation(summary = "사용자(랑부) 초대", description = "이메일로 조직 초대 메일을 발송합니다.")
public ResponseEntity<?> inviteUser(@RequestParam(required = false) String orgid, @RequestParam(required = false) String email) {
public ResponseEntity<?> inviteUser(@RequestParam(required = false) String orgid,
@RequestParam(required = false) String email) {
log.info("[OrgController] inviteUser...!");

orgService.inviteOrgSend(orgid, email);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import lab.cherry.nw.error.enums.ErrorCode;
import lab.cherry.nw.util.FormatConverter;
import lombok.extern.slf4j.Slf4j;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package lab.cherry.nw.error.handler;

import lab.cherry.nw.error.ErrorResponse;
import lab.cherry.nw.error.enums.ErrorCode;
import lab.cherry.nw.error.exception.CustomException;
import lab.cherry.nw.error.exception.EntityNotFoundException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
Expand All @@ -13,14 +9,13 @@
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import org.springframework.web.servlet.NoHandlerFoundException;
import jakarta.servlet.http.HttpServletResponse;
import java.nio.file.AccessDeniedException;
import java.util.HashMap;
import lab.cherry.nw.error.ErrorResponse;
import lab.cherry.nw.error.enums.ErrorCode;
import lab.cherry.nw.error.exception.CustomException;
import lab.cherry.nw.error.exception.EntityNotFoundException;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@RestControllerAdvice
Expand Down
12 changes: 6 additions & 6 deletions nw/src/main/java/lab/cherry/nw/model/EventEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,14 @@
@Builder
@NoArgsConstructor @AllArgsConstructor
@Document(collection = "events")
@JsonPropertyOrder({ "eventSeq", "eventTitle", "eventLocation", "resDate", "weddingDate", "evenDate", "updated_at" })
@JsonPropertyOrder({ "id", "title", "location", "resDate", "weddingDate", "updated_at" })
public class EventEntity implements Serializable {

@Id
@JsonProperty("eventSeq")
@Schema(title = "이벤트 고유번호", example = "64ed89aa9e813b5ab16da6de")
private String id;

@NotNull
@JsonProperty("eventTitle")
@Schema(title = "이벤트 이름", example = "{time}시 {title}")
@Size(min = 1, max = 20, message = "이벤트 이름은 20자 이내로만 가능합니다.")
private String title;
Expand All @@ -48,18 +46,20 @@ public class EventEntity implements Serializable {
// private String description;

@NotNull
@JsonProperty("eventLocation")
@Schema(title = "이벤트 장소", example = "더모멘트홀")
@Size(min = 1, max = 20, message = "이벤트 장소명은 20글자 이내로만 가능합니다.")
private String location;

@NotBlank
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss", locale = "ko_KR", timezone = "Asia/Seoul")
@JsonProperty("resDate")
@JsonFormat(locale = "ko_KR", timezone = "Asia/Seoul")
// @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss", locale = "ko_KR", timezone = "Asia/Seoul")
@Schema(title = "예약 날짜", example = "2023-08-29T05:11:38.002Z")
private String resDate;

@NotBlank
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss", locale = "ko_KR", timezone = "Asia/Seoul")
@JsonFormat(locale = "ko_KR", timezone = "Asia/Seoul")
// @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss", locale = "ko_KR", timezone = "Asia/Seoul")
@Schema(title = "예식 날짜", example = "2023-08-29T05:11:38.002Z")

private String weddingDate;
Expand Down
4 changes: 1 addition & 3 deletions nw/src/main/java/lab/cherry/nw/service/EventService.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
public interface EventService {
Page<EventEntity> getEvents(Pageable pageable);
EventEntity createEvent(String id);
// void updateById(String id, WeddinghallEntity.UpdateDto weddinghall);
EventEntity findById(String id);
// WeddinghallEntity findByName(String name);
void deleteById(String id);
// Page<EventEntity> findPageByName(String name, Pageable pageable);
boolean checkExistsWithEventId(String id);
}
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public void ResetPasswordSend(String email, String password) {
public void InviteOrgSend(String orgid, String orgname, String email) {

MimeMessage message = javaMmailSender.createMimeMessage();
String _link = FRONTEND_ADDR + "/auth/register/org/" + orgid;
String _link = FRONTEND_ADDR + "/register/org/" + orgid;

try {
message.addRecipients(MimeMessage.RecipientType.TO, email);
Expand Down
14 changes: 12 additions & 2 deletions nw/src/main/java/lab/cherry/nw/service/Impl/EventServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@ public EventEntity createEvent(String id) {
dateFormat = FormatConverter.convertDateFormat(userCardEntity.getResDate());

// {hour}:{min} {groom}♥{bride}
String eventName = dateFormat.get("hour") + ":" + dateFormat.get("minute") + " " + userCardEntity.getGroom().getName() + "♥" + userCardEntity.getBride().getName();
String eventName = dateFormat.get("hour") + ":" + ((dateFormat.get("minute") == 0) ? "00" : dateFormat.get("minute")) + " " + userCardEntity.getGroom().getName() + "♥" + userCardEntity.getBride().getName();

EventEntity eventEntity = EventEntity.builder()
.id(userCardEntity.getUserinfo().getId())
.id(userCardEntity.getId())
.title(eventName)
.location(userCardEntity.getWeddinghall().getName())
.resDate(userCardEntity.getResDate())
Expand Down Expand Up @@ -161,4 +161,14 @@ public UserCardEntity userCardFindById(String id) {
return userCardRepository.findById(id).orElseThrow(() -> new EntityNotFoundException("Usercard with Id " + id + " Not Found."));
}

@Transactional(readOnly = true)
public boolean checkExistsWithEventId(String id) {
if (eventRepository.findById(id).isPresent()) {
return true;
} else {
return false;
}
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,8 @@ public Page<OrgEntity> findPageByName(String name, Pageable pageable) {

public void inviteOrgSend(String orgid, String email) {

log.error("orgid is {}", orgid);

OrgEntity orgEntity = findById(orgid);
emailAuthService.InviteOrgSend(orgEntity.getId(), orgEntity.getName(), email);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
public class UserCardServiceImpl implements UserCardService {

private final UserCardRepository userCardRepository;
private final UserRepository userRepository;
private final UserService userService;
private final WeddinghallService weddinghallService;
private final EventService eventService;
Expand Down Expand Up @@ -200,7 +199,9 @@ public void updateWeddinghallByName(String id, String weddinghall) {
*/
public void deleteById(String id) {

eventService.deleteById(id);
if(eventService.checkExistsWithEventId(id)) {
eventService.deleteById(id);
}
userCardRepository.delete(userCardRepository.findById(id).orElseThrow(() -> new EntityNotFoundException("Usercard with Id " + id + " Not Found.")));
}

Expand Down

0 comments on commit 8a0f1b6

Please sign in to comment.