Skip to content

Commit

Permalink
refactor: 전체 패키지 구조 변경 (#114)
Browse files Browse the repository at this point in the history
* refactor: 패키지 구조 변경

* refactor: DTO 레코드로 변경

* refactor: 상점 도메인 패키지 구조 변경

* refactor: 패키지 표현 변경
  • Loading branch information
Invidam authored and Choi-JJunho committed May 9, 2024
1 parent 6406305 commit 8e4a49d
Show file tree
Hide file tree
Showing 40 changed files with 227 additions and 233 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
package in.koreatech.koin.auth;
package in.koreatech.koin.domain.auth;

import in.koreatech.koin.domain.user.User;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
import java.security.Key;
import java.time.Instant;
import java.util.Base64;
import java.util.Date;

import javax.crypto.SecretKey;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import in.koreatech.koin.domain.user.model.User;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;

@Component
public class JwtProvider {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package in.koreatech.koin.controller.shop;
package in.koreatech.koin.domain.shop.controller;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import in.koreatech.koin.dto.shop.ShopMenuResponse;
import in.koreatech.koin.service.shop.ShopService;
import in.koreatech.koin.domain.shop.dto.ShopMenuResponse;
import in.koreatech.koin.domain.shop.service.ShopService;
import lombok.RequiredArgsConstructor;

@RestController
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package in.koreatech.koin.dto.shop;
package in.koreatech.koin.domain.shop.dto;

import java.util.List;

import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

import in.koreatech.koin.domain.shop.Menu;
import in.koreatech.koin.domain.shop.MenuCategory;
import in.koreatech.koin.domain.shop.MenuImage;
import in.koreatech.koin.domain.shop.MenuOption;
import in.koreatech.koin.domain.shop.model.Menu;
import in.koreatech.koin.domain.shop.model.MenuCategory;
import in.koreatech.koin.domain.shop.model.MenuImage;
import in.koreatech.koin.domain.shop.model.MenuOption;
import lombok.extern.slf4j.Slf4j;

@Slf4j
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package in.koreatech.koin.domain.shop;
package in.koreatech.koin.domain.shop.model;

import java.util.ArrayList;
import java.util.List;

import in.koreatech.koin.domain.BaseEntity;
import in.koreatech.koin.global.common.BaseEntity;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package in.koreatech.koin.domain.shop;
package in.koreatech.koin.domain.shop.model;

import java.util.ArrayList;
import java.util.List;

import in.koreatech.koin.domain.BaseEntity;
import in.koreatech.koin.global.common.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package in.koreatech.koin.domain.shop;
package in.koreatech.koin.domain.shop.model;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package in.koreatech.koin.domain.shop;
package in.koreatech.koin.domain.shop.model;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package in.koreatech.koin.domain.shop;
package in.koreatech.koin.domain.shop.model;

import in.koreatech.koin.domain.BaseEntity;
import in.koreatech.koin.global.common.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package in.koreatech.koin.repository.shop;
package in.koreatech.koin.domain.shop.repository;

import java.util.Optional;

import org.springframework.data.repository.Repository;

import in.koreatech.koin.domain.shop.Menu;
import in.koreatech.koin.domain.shop.model.Menu;

public interface MenuRepository extends Repository<Menu, Long> {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package in.koreatech.koin.service.shop;
package in.koreatech.koin.domain.shop.service;

import java.util.List;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import in.koreatech.koin.domain.shop.Menu;
import in.koreatech.koin.domain.shop.MenuCategory;
import in.koreatech.koin.domain.shop.MenuCategoryMap;
import in.koreatech.koin.dto.shop.ShopMenuResponse;
import in.koreatech.koin.repository.shop.MenuRepository;
import in.koreatech.koin.domain.shop.model.Menu;
import in.koreatech.koin.domain.shop.model.MenuCategory;
import in.koreatech.koin.domain.shop.model.MenuCategoryMap;
import in.koreatech.koin.domain.shop.dto.ShopMenuResponse;
import in.koreatech.koin.domain.shop.repository.MenuRepository;
import lombok.RequiredArgsConstructor;

@Service
Expand All @@ -18,7 +18,7 @@
public class ShopService {

private final MenuRepository menuRepository;

public ShopMenuResponse findMenu(Long menuId) {
Menu menu = menuRepository.findById(menuId)
.orElseThrow(() -> new IllegalArgumentException("존재하지 않는 메뉴입니다."));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package in.koreatech.koin.controller;
package in.koreatech.koin.domain.track.controller;

import in.koreatech.koin.dto.TrackResponse;
import in.koreatech.koin.dto.TrackSingleResponse;
import in.koreatech.koin.service.TrackService;
import java.util.List;
import lombok.RequiredArgsConstructor;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import in.koreatech.koin.domain.track.dto.TrackResponse;
import in.koreatech.koin.domain.track.dto.TrackSingleResponse;
import in.koreatech.koin.domain.track.service.TrackService;
import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
public class TrackController {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,22 @@
package in.koreatech.koin.dto;
package in.koreatech.koin.domain.track.dto;

import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import in.koreatech.koin.domain.Track;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor(access = lombok.AccessLevel.PRIVATE)
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public class TrackResponse {

private Long id;
private String name;
private Integer headcount;
private Boolean isDeleted;
import in.koreatech.koin.domain.track.model.Track;

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updatedAt;
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public record TrackResponse(
Long id,
String name,
Integer headcount,
Boolean isDeleted,
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createdAt,
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updatedAt
) {

public static TrackResponse from(Track track) {
return new TrackResponse(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,22 @@
package in.koreatech.koin.dto;
package in.koreatech.koin.domain.track.dto;

import java.time.LocalDateTime;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import in.koreatech.koin.domain.Member;
import in.koreatech.koin.domain.TechStack;
import in.koreatech.koin.domain.Track;
import java.time.LocalDateTime;
import java.util.List;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class TrackSingleResponse {
import in.koreatech.koin.domain.track.model.Member;
import in.koreatech.koin.domain.track.model.TechStack;
import in.koreatech.koin.domain.track.model.Track;

@JsonProperty("TrackName")
private String trackName;

@JsonProperty("TechStacks")
private List<InnerTechStackResponse> innerTechStackResponses;

@JsonProperty("Members")
private List<InnerMemberResponse> innerMemberResponses;
public record TrackSingleResponse(
@JsonProperty("TrackName") String trackName,
@JsonProperty("TechStacks") List<InnerTechStackResponse> innerTechStackResponses,
@JsonProperty("Members") List<InnerMemberResponse> innerMemberResponses
) {

public static TrackSingleResponse of(Track track, List<Member> members, List<TechStack> techStacks) {
return new TrackSingleResponse(
Expand All @@ -38,21 +30,17 @@ public static TrackSingleResponse of(Track track, List<Member> members, List<Tec
);
}

@Getter
@AllArgsConstructor(access = AccessLevel.PUBLIC)
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public static class InnerTechStackResponse {

private Long id;
private String name;
private String description;
private String imageUrl;
private Long trackId;
private Boolean isDeleted;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updatedAt;
private record InnerTechStackResponse(
Long id,
String name,
String description,
String imageUrl,
Long trackId,
Boolean isDeleted,
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createdAt,
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updatedAt
) {

public static InnerTechStackResponse from(TechStack techStack) {
return new InnerTechStackResponse(
Expand All @@ -68,23 +56,19 @@ public static InnerTechStackResponse from(TechStack techStack) {
}
}

@Getter
@AllArgsConstructor(access = AccessLevel.PUBLIC)
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public static class InnerMemberResponse {

private Long id;
private String name;
private String studentNumber;
private String position;
private String track;
private String email;
private String imageUrl;
private Boolean isDeleted;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updatedAt;
private record InnerMemberResponse(
Long id,
String name,
String studentNumber,
String position,
String track,
String email,
String imageUrl,
Boolean isDeleted,
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createdAt,
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updatedAt
) {

public static InnerMemberResponse from(Member member, String trackName) {
return new InnerMemberResponse(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package in.koreatech.koin.domain;
package in.koreatech.koin.domain.track.model;

import in.koreatech.koin.global.common.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
Expand Down Expand Up @@ -56,7 +57,7 @@ public class Member extends BaseEntity {

@Builder
private Member(String name, String studentNumber, Long trackId, String position, String email, String imageUrl,
Boolean isDeleted) {
Boolean isDeleted) {
this.name = name;
this.studentNumber = studentNumber;
this.trackId = trackId;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package in.koreatech.koin.domain;
package in.koreatech.koin.domain.track.model;

import in.koreatech.koin.global.common.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
Expand All @@ -14,7 +15,6 @@
import lombok.Getter;
import lombok.NoArgsConstructor;


@Getter
@Entity
@Table(name = "tech_stacks")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package in.koreatech.koin.domain;
package in.koreatech.koin.domain.track.model;

import in.koreatech.koin.global.common.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package in.koreatech.koin.repository;
package in.koreatech.koin.domain.track.repository;

import in.koreatech.koin.domain.Member;
import java.util.List;

import org.springframework.data.repository.Repository;

import in.koreatech.koin.domain.track.model.Member;

public interface MemberRepository extends Repository<Member, Long> {

Member save(Member member);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package in.koreatech.koin.repository;
package in.koreatech.koin.domain.track.repository;

import in.koreatech.koin.domain.TechStack;
import java.util.List;

import org.springframework.data.repository.Repository;

import in.koreatech.koin.domain.track.model.TechStack;

public interface TechStackRepository extends Repository<TechStack, Long> {

TechStack save(TechStack techStack);
Expand Down
Loading

0 comments on commit 8e4a49d

Please sign in to comment.