Commit 7f7031e4 authored by Lokesh Singh's avatar Lokesh Singh

added a method in controller class

parent 171e9d49
package com.lokesh.webfluxdemo.controller; package com.lokesh.webfluxdemo.controller;
import com.lokesh.webfluxdemo.config.MongoConfig;
import com.lokesh.webfluxdemo.model.Animal; import com.lokesh.webfluxdemo.model.Animal;
import com.lokesh.webfluxdemo.repository.AnimalRepository; import com.lokesh.webfluxdemo.repository.AnimalRepository;
import com.lokesh.webfluxdemo.resource.AnimalResource; import com.lokesh.webfluxdemo.resource.AnimalResource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.time.Duration; import java.time.Duration;
...@@ -19,9 +20,18 @@ public class AnimalController { ...@@ -19,9 +20,18 @@ public class AnimalController {
private AnimalRepository animalRepository; private AnimalRepository animalRepository;
@GetMapping(produces = MediaType.APPLICATION_STREAM_JSON_VALUE) @GetMapping(produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public Flux<AnimalResource> findAll() { public Flux<AnimalResource> findAll() {
return animalRepository.findAll() return animalRepository.findAll()
.map(AnimalResource::new) .map(AnimalResource::new)
.delayElements(Duration.ofSeconds(1L)); .delayElements(Duration.ofSeconds(1L));
} }
@GetMapping(value = "/{id}")
// @ResponseStatus(HttpStatus.OK)
public Mono<AnimalResource> findAnimalById(@PathVariable("id") String id) {
return animalRepository.findById(id)
.map(AnimalResource::new)
.delayElement(Duration.ofSeconds(1L));
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment