Skip to content

Commit

Permalink
feat: Member 도메인 추가
Browse files Browse the repository at this point in the history
related to: #11
  • Loading branch information
heejjinkim committed Sep 3, 2024
1 parent 51f1553 commit ed65275
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 1 deletion.
46 changes: 46 additions & 0 deletions src/main/java/com/_119/wepro/member/domain/Member.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
package com._119.wepro.member.domain;

import com._119.wepro.auth.dto.response.OIDCDecodePayload;
import com._119.wepro.global.BaseEntity;
import com._119.wepro.global.enums.Provider;
import com._119.wepro.global.enums.Role;
import com._119.wepro.global.enums.Status;
import com._119.wepro.auth.dto.request.AuthRequest.SignInRequest;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import java.time.LocalDateTime;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.security.oauth2.core.oidc.user.OidcUser;

@Entity
@Getter
Expand All @@ -22,5 +32,41 @@ public class Member extends BaseEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String profile;

private String name;

@Enumerated(value = EnumType.STRING)
@Column(length = 10, nullable = false)
private Provider provider;

@Column(length = 20, nullable = false)
private String providerId;

@Enumerated(value = EnumType.STRING)
@Column(length = 10, nullable = false)
private Status status;

@Enumerated(value = EnumType.STRING)
@Column(length = 10, nullable = false)
private Role role;

private String position;

private String tag;

private LocalDateTime inactivatedAt;

public static Member of(SignInRequest request, OidcUser oidcDecodePayload) {
return Member.builder()
.profile(oidcDecodePayload.getPicture())
.name(oidcDecodePayload.getNickName())
.provider(request.getProvider())
.role(Role.GUEST)
.providerId(oidcDecodePayload.getName())
.status(Status.ACTIVE)
//Todo 태그 생성하기
// .tag()
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com._119.wepro.member.domain.repository;

import com._119.wepro.global.enums.Provider;
import com._119.wepro.member.domain.Member;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {

Optional<Member> findByProviderAndProviderId(Provider provider, String providerId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com._119.wepro.member.presentation;

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
@RequestMapping("/members")
public class MemberController {

}
10 changes: 10 additions & 0 deletions src/main/java/com/_119/wepro/member/service/MemberService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com._119.wepro.member.service;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class MemberService {

}

0 comments on commit ed65275

Please sign in to comment.