-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
0bbeae2
commit 6656446
Showing
7 changed files
with
172 additions
and
2 deletions.
There are no files selected for viewing
40 changes: 40 additions & 0 deletions
40
...api/src/main/java/com/heachi/housework/api/controller/group/info/GroupInfoController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
package com.heachi.housework.api.controller.group.info; | ||
|
||
import com.heachi.admin.common.response.JsonResult; | ||
import com.heachi.external.clients.auth.response.UserInfoResponse; | ||
import com.heachi.housework.api.controller.group.info.request.GroupInfoCreateRequest; | ||
import com.heachi.housework.api.service.auth.AuthExternalService; | ||
import com.heachi.housework.api.service.group.info.GroupInfoService; | ||
import com.heachi.housework.api.service.group.info.request.GroupInfoCreateServiceRequest; | ||
import jakarta.validation.Valid; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.springframework.web.bind.annotation.*; | ||
|
||
@Slf4j | ||
@RestController | ||
@RequiredArgsConstructor | ||
@RequestMapping("/group/info") | ||
public class GroupInfoController { | ||
|
||
private final AuthExternalService authExternalService; | ||
private final GroupInfoService groupInfoService; | ||
|
||
@PostMapping("/") | ||
public JsonResult<?> createGroupInfo(@RequestHeader(name = "Authorization") String authorization, | ||
@Valid @RequestBody GroupInfoCreateRequest request) { | ||
// 유저 인증 | ||
UserInfoResponse userInfoResponse = authExternalService.userAuthenticate(authorization); | ||
// GroupInfo 생성 | ||
groupInfoService.createGroupInfo(GroupInfoCreateServiceRequest.builder() | ||
.bgColor(request.getBgColor()) | ||
.colorCode(request.getColorCode()) | ||
.gradient(request.getGradient()) | ||
.name(request.getName()) | ||
.info(request.getInfo()) | ||
.email(userInfoResponse.getEmail()) | ||
.build()); | ||
|
||
return JsonResult.successOf(); | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...n/java/com/heachi/housework/api/controller/group/info/request/GroupInfoCreateRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.heachi.housework.api.controller.group.info.request; | ||
|
||
import jakarta.validation.constraints.NotEmpty; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.ToString; | ||
import org.hibernate.validator.constraints.Length; | ||
|
||
@Getter | ||
@ToString | ||
@NoArgsConstructor | ||
public class GroupInfoCreateRequest { | ||
@NotEmpty | ||
private String bgColor; // 그룹 배경색 | ||
|
||
@NotEmpty | ||
private String colorCode; // 그룹 색상코드 | ||
|
||
@NotEmpty | ||
private String gradient; // 그룹의 css 속성 | ||
|
||
@NotEmpty | ||
private String name; // 그룹 이름 | ||
|
||
@Length(max = 512) | ||
private String info; // 그룹 소개 | ||
} |
56 changes: 56 additions & 0 deletions
56
...ework-api/src/main/java/com/heachi/housework/api/service/group/info/GroupInfoService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package com.heachi.housework.api.service.group.info; | ||
|
||
import com.heachi.admin.common.exception.ExceptionMessage; | ||
import com.heachi.admin.common.exception.user.UserException; | ||
import com.heachi.housework.api.service.group.info.request.GroupInfoCreateServiceRequest; | ||
import com.heachi.mysql.define.group.info.GroupInfo; | ||
import com.heachi.mysql.define.group.info.repository.GroupInfoRepository; | ||
import com.heachi.mysql.define.group.member.GroupMember; | ||
import com.heachi.mysql.define.group.member.constant.GroupMemberRole; | ||
import com.heachi.mysql.define.group.member.constant.GroupMemberStatus; | ||
import com.heachi.mysql.define.group.member.repository.GroupMemberRepository; | ||
import com.heachi.mysql.define.user.User; | ||
import com.heachi.mysql.define.user.repository.UserRepository; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
@Slf4j | ||
@Service | ||
@RequiredArgsConstructor | ||
@Transactional(readOnly = true) | ||
public class GroupInfoService { | ||
|
||
private final UserRepository userRepository; | ||
private final GroupInfoRepository groupInfoRepository; | ||
private final GroupMemberRepository groupMemberRepository; | ||
|
||
@Transactional(readOnly = false) | ||
public void createGroupInfo(GroupInfoCreateServiceRequest request) { | ||
// User 가져오기 | ||
User user = userRepository.findByEmail(request.getEmail()).orElseThrow(() -> { | ||
log.warn(">>>> {} : {}", ExceptionMessage.USER_NOT_FOUND.getText(), request.getEmail()); | ||
|
||
throw new UserException(ExceptionMessage.USER_NOT_FOUND); | ||
}); | ||
|
||
// GroupInfo 생성하기 | ||
GroupInfo groupInfo = groupInfoRepository.save(GroupInfo.builder() | ||
.user(user) // 생성하는 사람을 자동으로 그룹장으로 임명 | ||
.bgColor(request.getBgColor()) | ||
.colorCode(request.getColorCode()) | ||
.gradient(request.getGradient()) | ||
.name(request.getName()) | ||
.info(request.getInfo()) | ||
.build()); | ||
|
||
// GroupMember 생성하기 | ||
groupMemberRepository.save(GroupMember.builder() | ||
.groupInfo(groupInfo) | ||
.user(user) | ||
.role(GroupMemberRole.GROUP_ADMIN) // 그룹장 | ||
.status(GroupMemberStatus.ACCEPT) // 그룹원 | ||
.build()); | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...va/com/heachi/housework/api/service/group/info/request/GroupInfoCreateServiceRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.heachi.housework.api.service.group.info.request; | ||
|
||
import lombok.Builder; | ||
import lombok.Getter; | ||
|
||
@Getter | ||
public class GroupInfoCreateServiceRequest { | ||
|
||
private String bgColor; // 그룹 배경색 | ||
private String colorCode; // 그룹 색상코드 | ||
private String gradient; // 그룹의 css 속성 | ||
private String name; // 그룹 이름 | ||
private String info; // 그룹 소개 | ||
|
||
private String email; // 유저 이메일 | ||
|
||
@Builder | ||
private GroupInfoCreateServiceRequest(String bgColor, String colorCode, String gradient, | ||
String name, String info, String email) { | ||
this.bgColor = bgColor; | ||
this.colorCode = colorCode; | ||
this.gradient = gradient; | ||
this.name = name; | ||
this.info = info; | ||
this.email = email; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
...hi-support/common/src/main/java/com/heachi/admin/common/exception/user/UserException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package com.heachi.admin.common.exception.user; | ||
|
||
import com.heachi.admin.common.exception.ExceptionMessage; | ||
import com.heachi.admin.common.exception.HeachiException; | ||
|
||
public class UserException extends HeachiException { | ||
public UserException(ExceptionMessage message) { | ||
super(message.getText()); | ||
} | ||
} |