Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import com.brainpix.api.ApiResponse;
import com.brainpix.api.CommonPageResponse;
import com.brainpix.api.swagger.SwaggerPageable;
import com.brainpix.post.converter.ApplyCollaborationDtoConverter;
import com.brainpix.post.converter.GetCollaborationHubDetailDtoConverter;
import com.brainpix.post.converter.GetCollaborationHubListDtoConverter;
Expand Down Expand Up @@ -75,7 +76,12 @@ public ResponseEntity<ApiResponse<Void>> updateCollaborationHub(@PathVariable("c
return ResponseEntity.ok(ApiResponse.successWithNoData());
}

@Operation(summary = "협업 광장 전체 조회 [POST]", description = "json body로 검색 조건을 입력받고, 쿼리 파라미터로 페이징을 위한 page, size를 입력받아 전체 조회합니다.")
@SwaggerPageable
@Operation(summary = "협업 광장 전체 조회 [POST]", description =
"json body로 검색 조건을 입력받고, 쿼리 파라미터로 페이징을 위한 page, size를 입력받아 전체 조회합니다."
+ "<br>category : ADVERTISING_PROMOTION, DESIGN, LESSON, MARKETING, DOCUMENT_WRITING, MEDIA_CONTENT,"
+ " TRANSLATION_INTERPRETATION, TAX_LAW_LABOR, CUSTOM_PRODUCTION, STARTUP_BUSINESS, FOOD_BEVERAGE, IT_TECH, OTHERS"
+ "<br>sortType : NEWEST, OLDEST, POPULAR")
@PostMapping("/search")
public ResponseEntity<ApiResponse<CommonPageResponse<GetCollaborationHubListDto.CollaborationDetail>>> getCollaborationHubList(
@RequestBody GetCollaborationHubListDto.Request request,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

import com.brainpix.api.ApiResponse;
import com.brainpix.api.CommonPageResponse;
import com.brainpix.api.swagger.SwaggerPageable;
import com.brainpix.post.converter.CreateCommentDtoConverter;
import com.brainpix.post.converter.CreateReplyDtoConverter;
import com.brainpix.post.converter.DeleteCommentDtoConverter;
Expand All @@ -39,6 +40,7 @@ public class CommentController {

private final CommentService commentService;

@SwaggerPageable
@AllUser
@Operation(summary = "댓글 목록 조회 API", description = "경로변수로 postId를 입력받아 해당 게시글의 댓글 목록을 조회합니다.<br>페이징을 위한 page와 size는 쿼리 파라미터로 입력받습니다.")
@GetMapping
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.brainpix.post.controller;

import org.springdoc.core.annotations.ParameterObject;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
Expand All @@ -14,6 +16,7 @@

import com.brainpix.api.ApiResponse;
import com.brainpix.api.CommonPageResponse;
import com.brainpix.api.swagger.SwaggerPageable;
import com.brainpix.post.converter.GetIdeaDetailDtoConverter;
import com.brainpix.post.converter.GetIdeaListDtoConverter;
import com.brainpix.post.converter.GetPopularIdeaListDtoConverter;
Expand Down Expand Up @@ -69,10 +72,17 @@ public ResponseEntity<ApiResponse<Void>> deleteIdeaMarket(@PathVariable("ideaId"
return ResponseEntity.ok(ApiResponse.successWithNoData());
}

@Operation(summary = "아이디어 전체 조회 [POST]", description = "json body로 아이디어 마켓 타입(IDEA_SOLUTION, MARKET_PLACE)과 검색 조건을 입력 받습니다.<br>페이징을 위한 page, size는 쿼리 파라미터로 입력받아 전체 조회합니다.")
@SwaggerPageable
@Operation(summary = "아이디어 전체 조회 [POST]", description =
"json body로 아이디어 마켓 타입과 검색 조건을 입력 받습니다."
+ "<br>페이징을 위한 page, size는 쿼리 파라미터로 입력받아 전체 조회합니다."
+ "<br>type : IDEA_SOLUTION, MARKET_PLACE"
+ "<br>category : ADVERTISING_PROMOTION, DESIGN, LESSON, MARKETING, DOCUMENT_WRITING, MEDIA_CONTENT,"
+ " TRANSLATION_INTERPRETATION, TAX_LAW_LABOR, CUSTOM_PRODUCTION, STARTUP_BUSINESS, FOOD_BEVERAGE, IT_TECH, OTHERS"
+ "<br>sortType : NEWEST, OLDEST, POPULAR, HIGHEST_PRICE, LOWEST_PRICE")
@PostMapping("/search")
public ResponseEntity<ApiResponse<CommonPageResponse<GetIdeaListDto.IdeaDetail>>> getIdeaList(
@RequestBody GetIdeaListDto.Request request,
@RequestBody @Valid GetIdeaListDto.Request request,
@PageableDefault(page = 0, size = 6) Pageable pageable) {
GetIdeaListDto.Parameter parameter = GetIdeaListDtoConverter.toParameter(request, pageable);
CommonPageResponse<GetIdeaListDto.IdeaDetail> response = ideaMarketService.getIdeaList(parameter);
Expand All @@ -91,10 +101,11 @@ public ResponseEntity<ApiResponse<GetIdeaDetailDto.Response>> getIdeaDetail(
return ResponseEntity.ok(ApiResponse.success(response));
}

@Operation(summary = "인기 아이디어 조회 [GET]", description = "쿼리 파라미터로 아이디어 마켓 타입(IDEA_SOLUTION, MARKET_PLACE)과 페이징을 위한 page, size를 입력받아 인기 아이디어를 조회합니다.")
@SwaggerPageable
@Operation(summary = "인기 아이디어 조회 [GET]", description = "쿼리 파라미터로 아이디어 마켓 타입과 페이징을 위한 page, size를 입력받아 인기 아이디어를 조회합니다.<br>type : IDEA_SOLUTION, MARKET_PLACE")
@GetMapping("/search/popular")
public ResponseEntity<ApiResponse<CommonPageResponse<GetPopularIdeaListDto.IdeaDetail>>> getPopularIdeaList(
GetPopularIdeaListDto.Request request,
@ModelAttribute @ParameterObject @Valid GetPopularIdeaListDto.Request request,
@PageableDefault(page = 0, size = 3) Pageable pageable
) {
GetPopularIdeaListDto.Parameter parameter = GetPopularIdeaListDtoConverter.toParameter(request, pageable);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.brainpix.post.controller;

import org.springdoc.core.annotations.ParameterObject;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
Expand All @@ -12,6 +14,7 @@

import com.brainpix.api.ApiResponse;
import com.brainpix.api.CommonPageResponse;
import com.brainpix.api.swagger.SwaggerPageable;
import com.brainpix.post.converter.GetPopularRequestTaskListDtoConverter;
import com.brainpix.post.converter.GetRequestTaskDetailDtoConverter;
import com.brainpix.post.converter.GetRequestTaskListDtoConverter;
Expand All @@ -24,6 +27,7 @@

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;

@RestController
Expand All @@ -33,21 +37,31 @@
public class RequestTaskQueryController {

private final RequestTaskQueryService requestTaskQueryService;

@Operation(summary = "요청 과제 전체 조회 [POST]", description = "json body로 요청 과제 타입(OPEN_IDEA, TECH_ZONE)과 검색 조건을 입력받고, 페이징을 위한 page, size는 쿼리 파라미터로 입력받아 전체 조회합니다.")

@SwaggerPageable
@Operation(summary = "요청 과제 전체 조회 [POST]", description =
"json body로 요청 과제 타입과 검색 조건을 입력받고, 페이징을 위한 page, size는 쿼리 파라미터로 입력받아 전체 조회합니다."
+ "<br>type : OPEN_IDEA, TECH_ZONE"
+ "<br>category : ADVERTISING_PROMOTION, DESIGN, LESSON, MARKETING, DOCUMENT_WRITING, MEDIA_CONTENT,"
+ " TRANSLATION_INTERPRETATION, TAX_LAW_LABOR, CUSTOM_PRODUCTION, STARTUP_BUSINESS, FOOD_BEVERAGE, IT_TECH, OTHERS"
+ "<br>sortType : NEWEST, OLDEST, POPULAR")
@PostMapping("/search")
public ResponseEntity<ApiResponse<CommonPageResponse<GetRequestTaskListDto.RequestTaskDetail>>> getRequestTaskList(
@RequestBody GetRequestTaskListDto.Request request, @PageableDefault(page = 0, size = 6) Pageable pageable) {
@RequestBody @Valid GetRequestTaskListDto.Request request,
@PageableDefault(page = 0, size = 6) Pageable pageable) {
GetRequestTaskListDto.Parameter parameter = GetRequestTaskListDtoConverter.toParameter(request, pageable);
CommonPageResponse<GetRequestTaskListDto.RequestTaskDetail> response = requestTaskQueryService.getRequestTaskList(
parameter);
return ResponseEntity.ok(ApiResponse.success(response));
}

@Operation(summary = "인기 요청 과제 조회 [GET]", description = "쿼리 파라미터로 요청 과제 타입(OPEN_IDEA, TECH_ZONE)과 page, size를 입력받아 저장순으로 조회합니다.")
@SwaggerPageable
@Operation(summary = "인기 요청 과제 조회 [GET]", description = "쿼리 파라미터로 요청 과제 타입과 page, size를 입력받아 저장순으로 조회합니다."
+ "<br>type : OPEN_IDEA, TECH_ZONE")
@GetMapping("/search/popular")
public ResponseEntity<ApiResponse<CommonPageResponse<GetPopularRequestTaskListDto.RequestTaskDetail>>> getPopularRequestTaskList(
GetPopularRequestTaskListDto.Request request, @PageableDefault(page = 0, size = 3) Pageable pageable) {
@ModelAttribute @ParameterObject @Valid GetPopularRequestTaskListDto.Request request,
@PageableDefault(page = 0, size = 3) Pageable pageable) {
GetPopularRequestTaskListDto.Parameter parameter = GetPopularRequestTaskListDtoConverter.toParameter(request,
pageable);
CommonPageResponse<GetPopularRequestTaskListDto.RequestTaskDetail> response = requestTaskQueryService.getPopularRequestTaskList(
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/brainpix/post/dto/GetIdeaListDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.brainpix.post.enums.SortType;
import com.brainpix.profile.entity.Specialization;

import jakarta.validation.constraints.NotBlank;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -15,6 +16,7 @@ public class GetIdeaListDto {
@NoArgsConstructor
@Getter
public static class Request {
@NotBlank(message = "아이디어 타입은 필수입니다. (IDEA_SOLUTION, MARKET_PLACE)")
private String type; // 아이디어 타입
private String keyword; // 검색 키워드
private String category; // 카테고리
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import com.brainpix.post.entity.idea_market.IdeaMarketType;

import jakarta.validation.constraints.NotBlank;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -15,6 +16,7 @@ public class GetPopularIdeaListDto {
@Getter
@Setter
public static class Request {
@NotBlank(message = "아이디어 타입은 필수입니다. (IDEA_SOLUTION, MARKET_PLACE)")
private String type; // 아이디어 타입 (IDEA_SOLUTION, MARKET_PLACE)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import com.brainpix.post.entity.request_task.RequestTaskType;

import jakarta.validation.constraints.NotBlank;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -15,6 +16,7 @@ public class GetPopularRequestTaskListDto {
@Getter
@Setter
public static class Request {
@NotBlank(message = "요청 과제 타입은 필수입니다. (OPEN_IDEA, TECH_ZONE)")
private String type; // 요청 과제 타입
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.brainpix.post.enums.SortType;
import com.brainpix.profile.entity.Specialization;

import jakarta.validation.constraints.NotBlank;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -15,6 +16,7 @@ public class GetRequestTaskListDto {
@NoArgsConstructor
@Getter
public static class Request {
@NotBlank(message = "요청 과제 타입은 필수입니다. (OPEN_IDEA, TECH_ZONE)")
private String type; // 요청 과제 타입
private String keyword; // 검색 키워드
private String category; // 카테고리
Expand Down