Skip to content

Commit 45a99e0

Browse files
authored
deploy 1.0
ver 1.0.0 배포
2 parents f68ff4f + e7ca1f7 commit 45a99e0

File tree

108 files changed

+3682
-11
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+3682
-11
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,3 @@
1111
### images
1212

1313
> (선택사항)
14-
15-
## Review Points
16-
17-
> 리뷰어가 특별히 더 봐주었으면 하는 부분이 있다면 작성해주세요.
18-
> ex) XX 메서드 로직을 더 간결하게 하는 방법이 있을까요?

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ dependencies {
2727
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
2828
implementation 'org.springframework.boot:spring-boot-starter-web'
2929

30+
// security
31+
implementation 'org.springframework.boot:spring-boot-starter-security'
32+
3033
// swagger
3134
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
3235

src/main/java/com/day_walk/backend/BackendApplication.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
56

67
@SpringBootApplication
8+
@EnableJpaAuditing
79
public class BackendApplication {
8-
9-
public static void main(String[] args) {
10-
SpringApplication.run(BackendApplication.class, args);
11-
System.out.println("Final Project Start!!");
12-
}
13-
10+
public static void main(String[] args) {
11+
SpringApplication.run(BackendApplication.class, args);
12+
System.out.println("Final Project Start!!");
13+
}
1414
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.day_walk.backend.domain.category.bean;
2+
3+
import com.day_walk.backend.domain.category.data.CategoryEntity;
4+
import com.day_walk.backend.domain.category.repository.CategoryRepository;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.stereotype.Component;
7+
8+
import java.util.List;
9+
import java.util.UUID;
10+
11+
@RequiredArgsConstructor
12+
@Component
13+
public class GetCategoryEntityBean {
14+
private final CategoryRepository categoryRepository;
15+
16+
public List<CategoryEntity> exec() {
17+
return categoryRepository.findAll();
18+
}
19+
20+
public CategoryEntity exec(UUID categoryId) {
21+
return categoryRepository.findById(categoryId).orElse(null);
22+
}
23+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.day_walk.backend.domain.category.controller;
2+
3+
import com.day_walk.backend.domain.category.data.dto.out.GetCategoryDto;
4+
import com.day_walk.backend.domain.category.service.CategoryService;
5+
import io.swagger.v3.oas.annotations.Operation;
6+
import io.swagger.v3.oas.annotations.tags.Tag;
7+
import lombok.RequiredArgsConstructor;
8+
import org.springframework.http.HttpStatus;
9+
import org.springframework.http.ResponseEntity;
10+
import org.springframework.web.bind.annotation.GetMapping;
11+
import org.springframework.web.bind.annotation.RequestMapping;
12+
import org.springframework.web.bind.annotation.RestController;
13+
14+
import java.util.HashMap;
15+
import java.util.List;
16+
import java.util.Map;
17+
18+
@RequiredArgsConstructor
19+
@RequestMapping("/api/category")
20+
@RestController
21+
@Tag(name = "Category 관련 API", description = "Category 관련된 API 명세서들니다.")
22+
public class CategoryController {
23+
private final CategoryService categoryService;
24+
25+
@Operation(summary = "카테고리 전체 조회", description = "카테고리와 카테고리별 태그들을 같이 조회합니다.")
26+
@GetMapping("/all")
27+
public ResponseEntity<Map<String, Object>> getAllCategory() {
28+
List<GetCategoryDto> categoryList = categoryService.getAllCategory();
29+
30+
boolean success = categoryList != null;
31+
32+
Map<String, Object> response = new HashMap<>();
33+
response.put("success", success);
34+
response.put("message", success ? "카테고리 전체 조회 성공!" : "카테고리 전체 조회 실패..");
35+
response.put("categoryList", categoryList);
36+
37+
return ResponseEntity.status(HttpStatus.OK).body(response);
38+
}
39+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.day_walk.backend.domain.category.data;
2+
3+
import com.day_walk.backend.global.BaseEntity;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.Id;
6+
import jakarta.persistence.Table;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Builder;
9+
import lombok.Getter;
10+
import lombok.NoArgsConstructor;
11+
12+
import java.util.UUID;
13+
14+
@AllArgsConstructor
15+
@NoArgsConstructor
16+
@Getter
17+
@Entity
18+
@Table(name = "category")
19+
public class CategoryEntity extends BaseEntity {
20+
@Id
21+
private UUID id;
22+
private String name;
23+
24+
@Builder
25+
public CategoryEntity(String name) {
26+
this.id = UUID.randomUUID();
27+
this.name = name;
28+
}
29+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.day_walk.backend.domain.category.data.dto.out;
2+
3+
import com.day_walk.backend.domain.category.data.CategoryEntity;
4+
import com.day_walk.backend.domain.tag.data.out.GetTagByCategoryDto;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Builder;
7+
import lombok.Getter;
8+
import lombok.NoArgsConstructor;
9+
10+
import java.util.List;
11+
import java.util.UUID;
12+
13+
@NoArgsConstructor
14+
@AllArgsConstructor
15+
@Getter
16+
public class GetCategoryDto {
17+
private UUID categoryId;
18+
private String categoryName;
19+
private List<GetTagByCategoryDto> tagList;
20+
21+
@Builder
22+
public GetCategoryDto(CategoryEntity category, List<GetTagByCategoryDto> tagList) {
23+
this.categoryId = category.getId();
24+
this.categoryName = category.getName();
25+
this.tagList = tagList;
26+
}
27+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.day_walk.backend.domain.category.repository;
2+
3+
import com.day_walk.backend.domain.category.data.CategoryEntity;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
import java.util.UUID;
8+
9+
@Repository
10+
public interface CategoryRepository extends JpaRepository<CategoryEntity, UUID> {
11+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.day_walk.backend.domain.category.service;
2+
3+
import com.day_walk.backend.domain.category.bean.GetCategoryEntityBean;
4+
import com.day_walk.backend.domain.category.data.CategoryEntity;
5+
import com.day_walk.backend.domain.category.data.dto.out.GetCategoryDto;
6+
import com.day_walk.backend.domain.tag.bean.GetTagEntityBean;
7+
import com.day_walk.backend.domain.tag.data.out.GetTagByCategoryDto;
8+
import lombok.RequiredArgsConstructor;
9+
import org.springframework.stereotype.Service;
10+
11+
import java.util.List;
12+
import java.util.stream.Collectors;
13+
14+
@RequiredArgsConstructor
15+
@Service
16+
public class CategoryService {
17+
private final GetCategoryEntityBean getCategoryEntityBean;
18+
private final GetTagEntityBean getTagEntityBean;
19+
20+
public List<GetCategoryDto> getAllCategory() {
21+
List<CategoryEntity> categoryEntityList = getCategoryEntityBean.exec();
22+
23+
return categoryEntityList.stream()
24+
.map(category -> GetCategoryDto.builder()
25+
.category(category)
26+
.tagList(getTagEntityBean.exec(category).stream()
27+
.map(tag -> GetTagByCategoryDto.builder().tag(tag).build())
28+
.toList()
29+
).build())
30+
.collect(Collectors.toList());
31+
}
32+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.day_walk.backend.domain.course.bean;
2+
3+
import com.day_walk.backend.domain.course.data.CourseEntity;
4+
import com.day_walk.backend.domain.course.repository.CourseRepository;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.stereotype.Component;
7+
8+
import java.util.List;
9+
10+
@RequiredArgsConstructor
11+
@Component
12+
public class GetAllCourseEntityBean {
13+
private final CourseRepository courseRepository;
14+
15+
public List<CourseEntity> exec(String sortStr) {
16+
17+
if (sortStr.equals("latest")) {
18+
return courseRepository.findAllByOrderByCreateAtDesc();
19+
} else if (sortStr.equals("like")) {
20+
return courseRepository.findAllOrderByLikeCount();
21+
}
22+
return courseRepository.findAll();
23+
}
24+
25+
}

0 commit comments

Comments
 (0)