33import java .util .List ;
44import java .util .UUID ;
55
6- import com .couchbase .client .core .error .DocumentNotFoundException ;
7-
86import org .slf4j .Logger ;
97import org .slf4j .LoggerFactory ;
108import org .springframework .beans .factory .annotation .Autowired ;
@@ -30,14 +28,22 @@ public class ProfileController {
3028 private ProfileRepository profileRepository ;
3129
3230 @ GetMapping ("/profile" )
33- public ResponseEntity <List <Profile >> listProfiles (@ RequestParam (required = false ) String query , @ RequestParam (defaultValue = "10" ) int pageSize , @ RequestParam (defaultValue = "0" ) int page ) {
31+ public ResponseEntity <List <Profile >> listProfiles (
32+ @ RequestParam (required = false ) String query ,
33+ @ RequestParam (defaultValue = "10" ) int pageSize ,
34+ @ RequestParam (defaultValue = "0" ) int page
35+ ) {
3436 if (pageSize < 1 || pageSize > 10 ) pageSize = 10 ;
3537 PageRequest pageRequest = PageRequest .of (page , pageSize );
3638 List <Profile > result ;
37- if (query != null && query .length () > 0 ) {
38- result = profileRepository .findByQuery (query , pageRequest ).toList ();
39- } else {
39+
40+ if (query == null || query .length () != 0 ) {
4041 result = profileRepository .findAll (pageRequest ).toList ();
42+ } else {
43+ // This is just a LIKE query.
44+ // For full-text search documentation refer to:
45+ // https://docs.couchbase.com/java-sdk/current/howtos/full-text-searching-with-sdk.html
46+ result = profileRepository .findByText (query , pageRequest ).toList ();
4147 }
4248
4349 if (result != null && result .size () > 0 ) {
@@ -61,6 +67,7 @@ public ResponseEntity<Profile> getProfileById(@PathVariable("id") UUID id) {
6167
6268 @ PostMapping ("/profile" )
6369 public ResponseEntity <Profile > saveProfile (@ RequestBody Profile profile ) {
70+ // the same endpoint can be used to create and save the object
6471 profile = profileRepository .save (profile );
6572 return ResponseEntity .status (HttpStatus .CREATED ).body (profile );
6673 }
@@ -75,9 +82,4 @@ public ResponseEntity<Void> deleteProfile(@PathVariable UUID id) {
7582 return ResponseEntity .notFound ().build ();
7683 }
7784 }
78-
79- @ GetMapping ("/test/**" )
80- public ResponseEntity <String > test () {
81- return ResponseEntity .ok ("test" );
82- }
8385}
0 commit comments