Skip to content

Commit

Permalink
feat: 허브 검색 api 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
hseong3243 committed Apr 25, 2024
1 parent e285c2c commit 4f2f21c
Show file tree
Hide file tree
Showing 5 changed files with 295 additions and 53 deletions.
12 changes: 11 additions & 1 deletion src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,22 @@ operation::hub-controller-test/create-hub[snippets='http-response,response-field

==== request

operation::hub-controller-test/find-hubs[snippets='http-request,path-parameters']
operation::hub-controller-test/find-hubs[snippets='http-request,query-parameters']

==== response

operation::hub-controller-test/find-hubs[snippets='http-response,response-fields']

=== 허브 목록 검색

==== request

operation::hub-controller-test/search-hubs[snippets='http-request,query-parameters']

==== response

operation::hub-controller-test/search-hubs[snippets='http-response,response-fields']

=== 허브 조회

==== request
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
import com.seong.shoutlink.domain.auth.LoginUser;
import com.seong.shoutlink.domain.hub.controller.request.CreateHubRequest;
import com.seong.shoutlink.domain.hub.controller.request.FindHubsRequest;
import com.seong.shoutlink.domain.hub.controller.request.SearchHubsRequest;
import com.seong.shoutlink.domain.hub.service.HubUseCase;
import com.seong.shoutlink.domain.hub.service.request.CreateHubCommand;
import com.seong.shoutlink.domain.hub.service.request.FindHubCommand;
import com.seong.shoutlink.domain.hub.service.request.FindMyHubsCommand;
import com.seong.shoutlink.domain.hub.service.request.SearchHubsCommand;
import com.seong.shoutlink.domain.hub.service.response.CreateHubResponse;
import com.seong.shoutlink.domain.hub.service.response.FindHubDetailResponse;
import com.seong.shoutlink.domain.hub.service.response.FindHubsCommand;
Expand Down Expand Up @@ -52,6 +54,17 @@ public ResponseEntity<FindHubsResponse> findHubs(
return ResponseEntity.ok(response);
}

@GetMapping("/hubs/search")
public ResponseEntity<FindHubsResponse> searchHubs(
@Valid @ModelAttribute SearchHubsRequest request) {
FindHubsResponse response = hubUseCase.searchHubs(new SearchHubsCommand(
request.tagKeyword(),
request.page(),
request.size()
));
return ResponseEntity.ok(response);
}

@GetMapping("/hubs/{hubId}")
public ResponseEntity<FindHubDetailResponse> findHub(@PathVariable("hubId") Long hubId) {
FindHubDetailResponse response = hubUseCase.findHub(new FindHubCommand(hubId));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.seong.shoutlink.domain.hub.controller.request;

import jakarta.validation.constraints.Min;
import java.util.Objects;
import org.hibernate.validator.constraints.Range;

public record SearchHubsRequest(
String tagKeyword,
@Min(value = 0, message = "페이지는 0 이상이어야 합니다.")
Integer page,
@Range(min = 0, max = 100, message = "사이즈는 0 이상, 100 이하여야 합니다.")
Integer size) {

public SearchHubsRequest(String tagKeyword, Integer page, Integer size) {
this.tagKeyword = Objects.isNull(tagKeyword) ? "" : tagKeyword;
this.page = Objects.isNull(page) ? 0 : page;
this.size = Objects.isNull(size) ? 20 : size;
}
}
Loading

0 comments on commit 4f2f21c

Please sign in to comment.