Skip to content

Commit

Permalink
chore: 친구 관련 패키지 구조 틀 생성 (#55)
Browse files Browse the repository at this point in the history
  • Loading branch information
D0ri123 authored Aug 17, 2023
1 parent b66c2ca commit f16c5ce
Show file tree
Hide file tree
Showing 9 changed files with 175 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.dnd.bbok.domain.friend.controller;

import com.dnd.bbok.domain.friend.dto.request.FriendRequestDto;
import com.dnd.bbok.domain.friend.dto.response.BbokCharactersDto;
import com.dnd.bbok.domain.friend.dto.response.FriendsDto;
import com.dnd.bbok.domain.friend.service.DiaryFriendUseCaseService;
import com.dnd.bbok.domain.friend.service.MemberFriendUseCaseService;
Expand Down Expand Up @@ -32,14 +31,14 @@ public class FriendController {
private final MemberFriendUseCaseService memberFriendUseCaseService;
private final DiaryFriendUseCaseService diaryFriendUseCaseService;

@ApiOperation(value = "캐릭터 정보 제공")
@GetMapping("/character")
@PreAuthorize("isAuthenticated()")
public ResponseEntity<DataResponse<BbokCharactersDto>> getBbokCharacter() {
BbokCharactersDto characters = iconService.getCharacterIcon();
return new ResponseEntity<>(
DataResponse.of(HttpStatus.OK, "캐릭터 목록 제공 성공", characters), HttpStatus.OK);
}
// @ApiOperation(value = "캐릭터 정보 제공")
// @GetMapping("/character")
// @PreAuthorize("isAuthenticated()")
// public ResponseEntity<DataResponse<BbokCharactersDto>> getBbokCharacter() {
// BbokCharactersDto characters = iconService.getCharacterIcon();
// return new ResponseEntity<>(
// DataResponse.of(HttpStatus.OK, "캐릭터 목록 제공 성공", characters), HttpStatus.OK);
// }

@ApiOperation(value = "친구 등록")
@PostMapping("/friend")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.dnd.bbok.friend.adapter.in.web;

import com.dnd.bbok.friend.application.port.in.usecase.GetIconQuery;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1")
@Api(tags = "친구 관련 컨트롤러")
@RequiredArgsConstructor
public class GetFriendCharacterController {

private final GetIconQuery getIconQuery;
//TODO: 컨트롤러 추가하기

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.dnd.bbok.friend.adapter.out.persistence.entity;

import static javax.persistence.FetchType.LAZY;
import static javax.persistence.GenerationType.IDENTITY;

import com.dnd.bbok.domain.friend.entity.BbokCharacter;
import com.dnd.bbok.domain.member.entity.Member;
import com.sun.istack.NotNull;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@NoArgsConstructor
public class FriendEntity {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;

@Enumerated(EnumType.STRING)
private BbokCharacter bbok;

@NotNull
private String name;

private boolean active;

@NotNull
private Long friendScore;

/**
* 친구와 회원을 다대일 관계 매핑
*/
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "member_id")
private Member member;

public void changeFriendScore(Long friendScore) {
this.friendScore = friendScore;
}

@Builder
public FriendEntity(BbokCharacter bbok, String name, boolean active, Long friendScore, Member member) {
this.bbok = bbok;
this.name = name;
this.active = active;
this.friendScore = friendScore;
this.member = member;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.dnd.bbok.friend.adapter.out.persistence.repository;

import com.dnd.bbok.friend.adapter.out.persistence.entity.FriendEntity;
import java.util.UUID;
import org.springframework.data.jpa.repository.JpaRepository;

public interface FriendTestRepository extends JpaRepository<FriendEntity, UUID> {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.dnd.bbok.friend.application.port.in.usecase;

import com.dnd.bbok.domain.friend.dto.response.BbokCharactersDto;

public interface GetIconQuery {

BbokCharactersDto getCharacterIcon();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.dnd.bbok.friend.application.port.out;

public interface LoadIconPort {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.dnd.bbok.friend.application.service;

import com.dnd.bbok.domain.friend.dto.response.BbokCharactersDto;
import com.dnd.bbok.friend.application.port.in.usecase.GetIconQuery;
import com.dnd.bbok.friend.application.port.out.LoadIconPort;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
@Slf4j
public class FriendIconService implements GetIconQuery {

@Override
public BbokCharactersDto getCharacterIcon() {
return null;
}
}
31 changes: 31 additions & 0 deletions src/main/java/com/dnd/bbok/friend/domain/BbokCharacter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.dnd.bbok.friend.domain;

public enum BbokCharacter {
FRONT_CACTUS("CACTUS", "인장이", "front_cactus.png"),
FRONT_HEDGEHOG("HEDGEHOG", "고스미", "front_hedgehog.png"),
SIDE_CACTUS("CACTUS", "인장이", "side_cactus.png"),
SIDE_HEDGEHOG("HEDGEHOG", "고스미", "side_hedgehog.png");

private final String type;
private final String name;
private final String iconFile;

BbokCharacter(String type, String name, String iconFile) {
this.type = type;
this.name = name;
this.iconFile = iconFile;
}

public String getType() {
return type;
}

public String getName() {
return name;
}

public String getIconFile() {
return iconFile;
}

}
17 changes: 17 additions & 0 deletions src/main/java/com/dnd/bbok/friend/domain/Friend.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.dnd.bbok.friend.domain;

import com.dnd.bbok.domain.friend.entity.BbokCharacter;

public class Friend {

private Long id;

private BbokCharacter bbok;

private String name;

private boolean active;

private Long friendScore;

}

0 comments on commit f16c5ce

Please sign in to comment.