Skip to content

Commit

Permalink
๐Ÿ”€ [MERGE] ๊นƒ ์ถฉ๋Œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ
Browse files Browse the repository at this point in the history
  • Loading branch information
eeddiinn committed Jan 9, 2024
1 parent 0bf1d93 commit 77c9c04
Show file tree
Hide file tree
Showing 10 changed files with 90 additions and 15 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/CD.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,5 @@ jobs:
key: ${{ secrets.RELEASE_SERVER_KEY }}
script: |
cd ~
./deploy.sh
./deploy.sh
docker image prune -f
40 changes: 30 additions & 10 deletions src/main/java/org/sopt/lequuServer/InitDb.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import static org.sopt.lequuServer.domain.sticker.model.StickerCategory.ALPHABET;
import static org.sopt.lequuServer.domain.sticker.model.StickerCategory.BIRTHDAY;
import java.util.Arrays;
import java.util.List;

import static org.sopt.lequuServer.domain.sticker.model.StickerCategory.*;

@Component
@RequiredArgsConstructor
Expand All @@ -25,6 +27,15 @@ public void init() {
initService.dbInit();
}

private static final List<String> CHARACTER_STICKERS = Arrays.asList(
"https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg",
"https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/0215b8a5-d7a1-40c3-b291-5174b1747074.jpg",
"https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/c446705f-d96f-4cef-b490-62979fc52cd9.jpg",
"https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/1d8ac983-4862-4687-b27a-324a4ecb8ae6.jpg",
"https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/ea9a990a-e6e5-4789-9911-a967095d3cdc.jpg",
"https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/38e4509e-61ba-42e7-a823-8b379c1be022.jpg"
);

@Component
@Transactional
@RequiredArgsConstructor
Expand All @@ -44,7 +55,7 @@ public void dbInit() {
Book book1 = Book.builder()
.uuid("ee4f66f9-9cf4-4b28-90f4-f71d0ecba021")
.favoriteName("LeoJ")
.favoriteImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/b4006561-382b-479e-ae1d-e841922e883f.jpg")
.favoriteImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/books/favorite_image/b4006561-382b-479e-ae1d-e841922e883f.jpg")
.title("1๋ฒˆ์งธ ๋ ˆํ๋ถ")
.description("๋ ˆํ๋ถ์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค!")
.backgroundColor(1)
Expand All @@ -56,7 +67,7 @@ public void dbInit() {
Book book = Book.builder()
.uuid("ee4f66f9-9cf4-4b28-90f4-f71d0ecba02" + String.valueOf(i + 1))
.favoriteName("LeoJ")
.favoriteImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/b4006561-382b-479e-ae1d-e841922e883f.jpg")
.favoriteImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/books/favorite_image/b4006561-382b-479e-ae1d-e841922e883f.jpg")
.title(String.valueOf(i + 1) + "๋ฒˆ์งธ ๋ ˆํ๋ถ")
.description("๋ ˆํ๋ถ์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค!")
.backgroundColor(1)
Expand All @@ -69,7 +80,7 @@ public void dbInit() {
for (int i = 0; i < 3; i++) {
Note note = Note.builder()
.content("๋ ˆํ๋…ธํŠธ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค ๋ธ”๋ผ๋ธ”๋ผ๋ธ”๋ผ ๋ธ”๋ผ๋ธ”๋ผ๋ธ”๋ผ ๋ธ”๋ผ๋ธ”๋ผ๋ธ”๋ผ ๋ธ”๋ผ๋ธ”๋ผ๋ธ”๋ผ ๋ธ”๋ผ๋ธ”๋ผ๋ธ”๋ผ ๋ธ”๋ผ๋ธ”๋ผ๋ธ”๋ผ ๋ธ”๋ผ๋ธ”๋ผ๋ธ”๋ผ")
.background("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/676c2ca3-f868-423f-8000-a0bcb67dc797.jpg")
.background("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/notes/background_image/676c2ca3-f868-423f-8000-a0bcb67dc797.jpg")
.textColor(i)
.member(member1)
.book(book1)
Expand All @@ -90,38 +101,47 @@ public void dbInit() {
Sticker sticker1 = Sticker.builder()
.bookId(0L)
.category(ALPHABET)
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.build();
em.persist(sticker1);
for (int i = 0; i < 3; i++) {
Sticker sticker = Sticker.builder()
.bookId(0L)
.category(ALPHABET)
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.build();
em.persist(sticker);
}
for (int i = 0; i < 6; i++) {
Sticker sticker = Sticker.builder()
.bookId(0L)
.category(BIRTHDAY)
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.build();
em.persist(sticker);
}
for (String characterSticker : CHARACTER_STICKERS) {
Sticker sticker = Sticker.builder()
.bookId(0L)
.category(CHARACTER)
.stickerImage(characterSticker)
.build();
em.persist(sticker);
}

for (int i = 0; i < 2; i++) {
Sticker sticker = Sticker.builder()
.bookId(1L)
.category(ALPHABET)
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.build();
em.persist(sticker);
}
for (int i = 0; i < 3; i++) {
Sticker sticker = Sticker.builder()
.bookId(1L)
.category(BIRTHDAY)
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.stickerImage("https://lequu-server-bucket.s3.ap-northeast-2.amazonaws.com/stickers/8d83b1c1-1e2c-437b-a2f5-e3ce96ce6d35.jpg")
.build();
em.persist(sticker);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package org.sopt.lequuServer.domain.member.controller;

import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.sopt.lequuServer.domain.member.dto.request.MemberNicknameRequestDto;
import org.sopt.lequuServer.domain.member.dto.request.SocialLoginRequestDto;
import org.sopt.lequuServer.domain.member.dto.response.MemberLoginResponseDto;
import org.sopt.lequuServer.domain.member.dto.response.MemberNicknameResponseDto;
import org.sopt.lequuServer.domain.member.service.MemberService;
import org.sopt.lequuServer.global.auth.fegin.kakao.KakaoLoginService;
import org.sopt.lequuServer.global.auth.jwt.JwtProvider;
Expand All @@ -14,6 +17,8 @@

import java.security.Principal;

import static org.sopt.lequuServer.global.exception.enums.SuccessType.SET_MEMBER_NICKNAME_SUCCESS;

@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
Expand Down Expand Up @@ -54,4 +59,11 @@ public ApiResponse<?> kakaoAccessToken(

return ApiResponse.success(SuccessType.KAKAO_ACCESS_TOKEN_SUCCESS, kakaoLoginService.getKakaoAccessToken(code));
}
}

@PatchMapping("/nickname")
@ResponseStatus(HttpStatus.OK)
public ApiResponse<MemberNicknameResponseDto> setMemberNickname(Principal principal, @Valid @RequestBody MemberNicknameRequestDto request) {

return ApiResponse.success(SET_MEMBER_NICKNAME_SUCCESS, memberService.setMemberNickname(JwtProvider.getUserFromPrincial(principal), request));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.sopt.lequuServer.domain.member.dto.request;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;

public record MemberNicknameRequestDto(
@NotBlank
@Size(min = 1, max = 8, message = "๋‹‰๋„ค์ž„์€ 1๊ธ€์ž ์ด์ƒ 8๊ธ€์ž ์ดํ•˜์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.")
String nickname
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.sopt.lequuServer.domain.member.dto.response;

public record MemberNicknameResponseDto(Long memberId) {
public static MemberNicknameResponseDto of(Long userId) {
return new MemberNicknameResponseDto(userId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ public class Member extends BaseTimeEntity {

private String nickname;

public void updateNickname(String nickname) {
this.nickname = nickname;
}

/**
* ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ด€๋ จ
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package org.sopt.lequuServer.domain.member.service;

import lombok.RequiredArgsConstructor;
import org.sopt.lequuServer.domain.member.dto.request.MemberNicknameRequestDto;
import org.sopt.lequuServer.domain.member.dto.request.SocialLoginRequestDto;
import org.sopt.lequuServer.domain.member.dto.response.MemberLoginResponseDto;
import org.sopt.lequuServer.domain.member.dto.response.MemberNicknameResponseDto;
import org.sopt.lequuServer.domain.member.model.Member;
import org.sopt.lequuServer.domain.member.model.SocialPlatform;
import org.sopt.lequuServer.domain.member.repository.MemberRepository;
Expand Down Expand Up @@ -100,4 +102,12 @@ private static String parseTokenString(String tokenString) {
}
return strings[1];
}

@Transactional
public MemberNicknameResponseDto setMemberNickname(Long memberId, MemberNicknameRequestDto request) {
Member member = memberRepository.findByIdOrThrow(memberId);
member.updateNickname(request.nickname());

return MemberNicknameResponseDto.of(memberId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@
import org.sopt.lequuServer.domain.note.dto.response.NoteResponseDto;
import org.sopt.lequuServer.domain.note.model.Note;
import org.sopt.lequuServer.domain.note.service.NoteService;
import org.sopt.lequuServer.global.s3.service.S3Service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import static org.sopt.lequuServer.global.s3.enums.ImageFolderName.NOTE_BACKGROUND_IMAGE_FOLDER_NAME;

@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
Expand All @@ -20,11 +23,17 @@ public class NoteFacade {
private final MemberRepository memberRepository;
private final BookRepository bookRepository;
private final NoteService noteService;
private final S3Service s3Service;

public NoteResponseDto createNote(Long userId, NoteCreateDto noteCreateDto) {
Member member = memberRepository.findByIdOrThrow(userId);
Book book = bookRepository.findByIdOrThrow(noteCreateDto.bookId());

return noteService.saveNote(Note.of(noteCreateDto.content(), noteCreateDto.background(), noteCreateDto.textColor(), member, book), member, book);
String background = noteCreateDto.background();
if (background.endsWith(".jpg")) {
background = s3Service.getURL(NOTE_BACKGROUND_IMAGE_FOLDER_NAME.getValue() + noteCreateDto.background());
}

return noteService.saveNote(Note.of(noteCreateDto.content(), background, noteCreateDto.textColor(), member, book), member, book);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
public enum StickerCategory {

ALPHABET("์•ŒํŒŒ๋ฒณ"),
BIRTHDAY("์ƒ์ผ");
BIRTHDAY("์ƒ์ผ"),
CHARACTER("์บ๋ฆญํ„ฐ");

private final String value;
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("**")
.allowedOrigins("http://localhost:5173", "http://localhost:8080")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowCredentials(true)
.maxAge(3000);
Expand Down

0 comments on commit 77c9c04

Please sign in to comment.