diff --git a/out/production/resources/application.yml b/out/production/resources/application.yml index 44c4498e..c2ebeda7 100644 --- a/out/production/resources/application.yml +++ b/out/production/resources/application.yml @@ -2,3 +2,8 @@ spring: profiles: active: local include: secret + + servlet: + multipart: + max-file-size: 20MB + max-request-size: 20MB diff --git a/src/main/java/com/sponus/sponusbe/domain/announcement/entity/enums/AnnouncementCategory.java b/src/main/java/com/sponus/sponusbe/domain/announcement/entity/enums/AnnouncementCategory.java index 83fbaf84..e54364b5 100644 --- a/src/main/java/com/sponus/sponusbe/domain/announcement/entity/enums/AnnouncementCategory.java +++ b/src/main/java/com/sponus/sponusbe/domain/announcement/entity/enums/AnnouncementCategory.java @@ -1,5 +1,5 @@ package com.sponus.sponusbe.domain.announcement.entity.enums; public enum AnnouncementCategory { - IDEA, MARKETING, DESIGN, DEVELOPMENT, OTHER + IDEA, MARKETING, DESIGN, MEDIA, DEVELOPMENT, OTHER } diff --git a/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java b/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java index 6d4bf79a..56bf406a 100644 --- a/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java +++ b/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java @@ -75,4 +75,8 @@ public void setAnnouncement(Announcement announcement) { public void setPropose(Propose propose) { this.propose = propose; } + + public void setRead(boolean read) { + isRead = read; + } } diff --git a/src/main/java/com/sponus/sponusbe/domain/organization/controller/OrganizationController.java b/src/main/java/com/sponus/sponusbe/domain/organization/controller/OrganizationController.java index b4aac450..3b7a9552 100644 --- a/src/main/java/com/sponus/sponusbe/domain/organization/controller/OrganizationController.java +++ b/src/main/java/com/sponus/sponusbe/domain/organization/controller/OrganizationController.java @@ -96,4 +96,12 @@ public ApiResponse deleteNotification( organizationService.deleteNotification(organization, notificationId); return ApiResponse.onSuccess(null); } + + @PostMapping("/notifications/{notificationId}") + public ApiResponse readNotification( + @AuthOrganization Organization organization, + @PathVariable("notificationId") Long notificationId) { + organizationService.readNotification(organization, notificationId); + return ApiResponse.onSuccess(null); + } } diff --git a/src/main/java/com/sponus/sponusbe/domain/organization/service/OrganizationService.java b/src/main/java/com/sponus/sponusbe/domain/organization/service/OrganizationService.java index e4f07bcf..e6c512d7 100644 --- a/src/main/java/com/sponus/sponusbe/domain/organization/service/OrganizationService.java +++ b/src/main/java/com/sponus/sponusbe/domain/organization/service/OrganizationService.java @@ -58,14 +58,14 @@ public void deactivateOrganization(Long organizationId) { public String sendEmail(String to) throws Exception { String code = createEmailCode(); - MimeMessage message = createMessage(to, code); + MimeMessage message = createEmail(to, code); emailSender.send(message); return code; } - private MimeMessage createMessage(String to, String code) throws Exception { - System.out.println("보내는 대상 : " + to); - System.out.println("인증 코드 : " + code); + private MimeMessage createEmail(String to, String code) throws Exception { + log.info("보내는 대상 : " + to); + log.info("인증 코드 : " + code); MimeMessage message = emailSender.createMimeMessage(); message.addRecipients(MimeMessage.RecipientType.TO, to); // 보내는 대상 message.setSubject("Spon-us 인증 코드 발급입니다."); // 제목 @@ -87,22 +87,21 @@ private MimeMessage createMessage(String to, String code) throws Exception { } public static String createEmailCode() { - StringBuffer code = new StringBuffer(); + StringBuilder code = new StringBuilder(); Random rnd = new Random(); - for (int i = 0; i < 8; i++) { // 비밀번호 8자리 + for (int i = 0; i < 6; i++) { // 인증 코드 6자리 int index = rnd.nextInt(3); // 0~2 까지 랜덤 - switch (index) { case 0: - code.append((char)((int)(rnd.nextInt(26)) + 97)); + code.append((char)((rnd.nextInt(26)) + 97)); // a~z (ex. 1+97=98 => (char)98 = 'b') break; case 1: - code.append((char)((int)(rnd.nextInt(26)) + 65)); + code.append((char)((rnd.nextInt(26)) + 65)); // A~Z break; - case 2: + default: code.append((rnd.nextInt(10))); // 0~9 break; @@ -126,4 +125,13 @@ public void deleteNotification(Organization organization, Long notificationId) { } notificationRepository.delete(notification); } + + public void readNotification(Organization organization, Long notificationId) { + Notification notification = notificationRepository.findById(notificationId) + .orElseThrow(() -> new NotificationException(NotificationErrorCode.NOTIFICATION_NOT_FOUND)); + if (!notification.getOrganization().getId().equals(organization.getId())) { + throw new NotificationException(NotificationErrorCode.INVALID_ORGANIZATION); + } + notification.setRead(true); + } } diff --git a/src/main/java/com/sponus/sponusbe/domain/s3/S3Service.java b/src/main/java/com/sponus/sponusbe/domain/s3/S3Service.java index b1537033..633396ae 100644 --- a/src/main/java/com/sponus/sponusbe/domain/s3/S3Service.java +++ b/src/main/java/com/sponus/sponusbe/domain/s3/S3Service.java @@ -28,6 +28,7 @@ public String uploadFile(MultipartFile file) { UUID.randomUUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentLength(file.getSize()); + log.info("[*] File Size : {}", file.getSize()); try { amazonS3.putObject( new PutObjectRequest(s3Config.getBucket(), s3Config.getFolder() + filePath, file.getInputStream(), diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 758bb67c..c2ebeda7 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,3 +6,4 @@ spring: servlet: multipart: max-file-size: 20MB + max-request-size: 20MB