Skip to content

Commit ff07dd5

Browse files
author
EpicFn
committed
Merge branch 'develop' into feat/OPS-326-BE-feat-대시보드-데이터-저장-체계-구축
2 parents f66842e + 2b90a90 commit ff07dd5

File tree

17 files changed

+325
-16
lines changed

17 files changed

+325
-16
lines changed

src/main/java/org/tuna/zoopzoop/backend/domain/archive/folder/repository/FolderRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,8 @@ public interface FolderRepository extends JpaRepository<Folder, Integer>{
5858
""")
5959
Optional<Folder> findByIdAndMemberId(@Param("folderId") Integer folderId,
6060
@Param("memberId") Integer memberId);
61+
62+
Optional<Folder> findByArchiveIdAndName(Integer archiveId, String name);
63+
64+
List<Folder> findAllByArchiveId(Integer archiveId);
6165
}

src/main/java/org/tuna/zoopzoop/backend/domain/auth/controller/ApiV1AuthController.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ public ResponseEntity<RsData<Void>> refreshToken(
122122
.body(new RsData<>("200", "액세스 토큰을 재발급 했습니다.", null));
123123
}
124124

125+
/**
126+
* 확장프로그램의 액세스 토큰 발급을 위한 백그라운드 풀링에 대응하는 API
127+
* @param state 확장프로그램 로그인 시 전달한 state 값.
128+
*/
129+
125130
@GetMapping("/result")
126131
@Operation(summary = "확장프로그램 백그라운드 풀링 대응 API")
127132
public ResponseEntity<RsData<AuthResultData>> pullingResult(
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.tuna.zoopzoop.backend.domain.auth.dev.controller;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import org.springframework.context.annotation.Profile;
5+
import org.springframework.http.HttpStatus;
6+
import org.springframework.web.bind.annotation.*;
7+
import org.springframework.web.server.ResponseStatusException;
8+
import org.tuna.zoopzoop.backend.domain.member.entity.Member;
9+
import org.tuna.zoopzoop.backend.domain.member.enums.Provider;
10+
import org.tuna.zoopzoop.backend.domain.member.repository.MemberRepository;
11+
import org.tuna.zoopzoop.backend.global.security.jwt.JwtUtil;
12+
13+
import java.util.Map;
14+
15+
@Profile({"local","dev","staging","test"})
16+
@RestController
17+
@RequestMapping("/dev")
18+
@RequiredArgsConstructor
19+
public class DevController {
20+
21+
private final MemberRepository memberRepository;
22+
private final JwtUtil jwtUtil;
23+
24+
@GetMapping("/token")
25+
public Map<String, String> issueToken(
26+
@RequestParam Provider provider,
27+
@RequestParam String key
28+
) {
29+
Member m = memberRepository.findByProviderAndProviderKey(provider, key)
30+
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "member not found"));
31+
32+
String accessToken = jwtUtil.generateToken(m);
33+
return Map.of("accessToken", accessToken);
34+
}
35+
}

src/main/java/org/tuna/zoopzoop/backend/domain/dashboard/entity/Node.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ public class Node extends BaseEntity {
2626

2727
@ElementCollection
2828
@CollectionTable(name = "node_data", joinColumns = @JoinColumn(name = "node_id"))
29-
@MapKeyColumn(name = "key")
30-
@Column(name = "value")
29+
@MapKeyColumn(name = "data_key")
30+
@Column(name = "data_value")
3131
private Map<String, String> data = new HashMap<>();
3232

3333
@Column

src/main/java/org/tuna/zoopzoop/backend/domain/datasource/repository/DataSourceRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,7 @@ public interface DataSourceRepository extends JpaRepository<DataSource, Integer>
3939
""")
4040
List<Integer> findExistingIdsInMember(@Param("memberId") Integer memberId, @Param("ids") Collection<Integer> ids);
4141

42+
Optional<DataSource> findByFolderIdAndTitle(Integer folderId, String title);
43+
4244
}
4345

src/main/java/org/tuna/zoopzoop/backend/domain/member/controller/ApiV1MemberController.java

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import org.springframework.http.ResponseEntity;
99
import org.springframework.security.core.annotation.AuthenticationPrincipal;
1010
import org.springframework.web.bind.annotation.*;
11+
import org.tuna.zoopzoop.backend.domain.member.dto.req.ReqBodyForEditMember;
1112
import org.tuna.zoopzoop.backend.domain.member.dto.req.ReqBodyForEditMemberName;
12-
import org.tuna.zoopzoop.backend.domain.member.dto.res.ResBodyForEditMemberName;
13-
import org.tuna.zoopzoop.backend.domain.member.dto.res.ResBodyForGetMemberInfo;
14-
import org.tuna.zoopzoop.backend.domain.member.dto.res.ResBodyForGetMemberInfoV2;
13+
import org.tuna.zoopzoop.backend.domain.member.dto.req.ReqBodyForEditMemberProfileImage;
14+
import org.tuna.zoopzoop.backend.domain.member.dto.res.*;
1515
import org.tuna.zoopzoop.backend.domain.member.entity.Member;
1616
import org.tuna.zoopzoop.backend.domain.member.service.MemberService;
1717
import org.tuna.zoopzoop.backend.global.rsData.RsData;
@@ -62,14 +62,14 @@ public ResponseEntity<RsData<ResBodyForGetMemberInfoV2>> getMemberInfo(
6262
* @param userDetails @AuthenticationPrincipal로 받아오는 현재 사용자 정보
6363
* @param reqBodyForEditMemberName 수정할 닉네임을 받아오는 reqDto
6464
*/
65-
@PutMapping("/edit")
65+
@PutMapping("/edit/name")
6666
@Operation(summary = "사용자 닉네임 수정")
6767
public ResponseEntity<RsData<ResBodyForEditMemberName>> editMemberName(
6868
@AuthenticationPrincipal CustomUserDetails userDetails,
6969
@Valid @RequestBody ReqBodyForEditMemberName reqBodyForEditMemberName
7070
) {
7171
Member member = userDetails.getMember();
72-
member.updateName(reqBodyForEditMemberName.newName());
72+
memberService.updateMemberName(member, reqBodyForEditMemberName.newName());
7373
return ResponseEntity
7474
.status(HttpStatus.OK)
7575
.body(
@@ -81,12 +81,64 @@ public ResponseEntity<RsData<ResBodyForEditMemberName>> editMemberName(
8181
);
8282
}
8383

84+
/**
85+
* 현재 로그인한 사용자의 프로필 이미지를 변경하는 API
86+
* HTTP METHOD: PUT
87+
* @param userDetails @AuthenticationPrincipal로 받아오는 현재 사용자 정보
88+
* @param reqBodyForEditMemberProfileImage 수정할 프로필 이미지를 받아오는 dto
89+
*/
90+
@PutMapping("/edit/image")
91+
@Operation(summary = "사용자 닉네임 수정")
92+
public ResponseEntity<RsData<ResBodyForEditMemberProfileImage>> editMemberProfileImage(
93+
@AuthenticationPrincipal CustomUserDetails userDetails,
94+
@Valid @RequestBody ReqBodyForEditMemberProfileImage reqBodyForEditMemberProfileImage
95+
) {
96+
Member member = userDetails.getMember();
97+
memberService.updateMemberProfileUrl(member, reqBodyForEditMemberProfileImage.file());
98+
return ResponseEntity
99+
.status(HttpStatus.OK)
100+
.body(
101+
new RsData<>(
102+
"200",
103+
"사용자의 프로필 이미지를 변경했습니다.",
104+
new ResBodyForEditMemberProfileImage(member.getProfileImageUrl())
105+
)
106+
);
107+
}
108+
109+
/**
110+
* 현재 로그인한 사용자의 닉네임과 프로필 이미지를 변경하는 API
111+
* HTTP METHOD: PUT
112+
* @param userDetails @AuthenticationPrincipal로 받아오는 현재 사용자 정보
113+
* @param reqBodyForEditMember 수정할 프로필 정보를 받아오는 dto
114+
*/
115+
@PutMapping("/edit")
116+
@Operation(summary = "사용자 프로필 수정")
117+
public ResponseEntity<RsData<ResBodyForEditMember>> editMemberProfile(
118+
@AuthenticationPrincipal CustomUserDetails userDetails,
119+
@Valid @RequestBody ReqBodyForEditMember reqBodyForEditMember
120+
) {
121+
Member member = userDetails.getMember();
122+
memberService.updateMemberProfile(member, reqBodyForEditMember.newName(), reqBodyForEditMember.file());
123+
return ResponseEntity
124+
.status(HttpStatus.OK)
125+
.body(
126+
new RsData<>(
127+
"200",
128+
"사용자의 프로필을 변경했습니다.",
129+
new ResBodyForEditMember(member.getName(), member.getProfileImageUrl())
130+
)
131+
);
132+
}
133+
134+
84135
/**
85136
* 현재 로그인한 사용자를 삭제하는 API
86137
* 사용할 지 모르겠음.
87138
* HTTP METHOD: DELETE
88139
* @param userDetails @AuthenticationPrincipal로 받아오는 현재 사용자 정보
89140
*/
141+
90142
@DeleteMapping
91143
@Operation(summary = "사용자 삭제")
92144
public ResponseEntity<RsData<Void>> deleteMember(
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.tuna.zoopzoop.backend.domain.member.dto.req;
2+
3+
import jakarta.validation.constraints.NotBlank;
4+
import jakarta.validation.constraints.NotNull;
5+
import org.springframework.web.multipart.MultipartFile;
6+
7+
public record ReqBodyForEditMember (
8+
@NotBlank(message = "잘못된 요청입니다.") //MethodArgumentException
9+
String newName,
10+
@NotNull(message = "파일을 선택해주세요.")
11+
MultipartFile file
12+
) {
13+
public ReqBodyForEditMember(String newName, MultipartFile file) {
14+
this.newName = newName;
15+
this.file = file;
16+
}
17+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.tuna.zoopzoop.backend.domain.member.dto.req;
2+
3+
import jakarta.validation.constraints.NotNull;
4+
import org.springframework.web.multipart.MultipartFile;
5+
6+
public record ReqBodyForEditMemberProfileImage (
7+
@NotNull(message = "파일을 선택해주세요.")
8+
MultipartFile file
9+
) {
10+
public ReqBodyForEditMemberProfileImage(MultipartFile file) {
11+
this.file = file;
12+
}
13+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.tuna.zoopzoop.backend.domain.member.dto.res;
2+
3+
public record ResBodyForEditMember(
4+
String name,
5+
String profileUrl
6+
) {
7+
public ResBodyForEditMember(String name, String profileUrl) {
8+
this.name = name;
9+
this.profileUrl = profileUrl;
10+
}
11+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.tuna.zoopzoop.backend.domain.member.dto.res;
2+
3+
public record ResBodyForEditMemberProfileImage(
4+
String profileUrl
5+
) {
6+
public ResBodyForEditMemberProfileImage(String profileUrl) {
7+
this.profileUrl = profileUrl;
8+
}
9+
}

0 commit comments

Comments
 (0)