Skip to content

Instantly share code, notes, and snippets.

@kevintanhongann
Created March 8, 2019 04:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kevintanhongann/df17cdf29b485f670d3f52793eeb012f to your computer and use it in GitHub Desktop.
Save kevintanhongann/df17cdf29b485f670d3f52793eeb012f to your computer and use it in GitHub Desktop.
example-micronaut-gorm code snippet 5
package example.micronaut.gorm.controller
import example.micronaut.gorm.domain.Person
import example.micronaut.gorm.service.PersonService
import io.micronaut.http.HttpResponse
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Delete
import io.micronaut.http.annotation.Get
import io.micronaut.http.annotation.Post
import io.micronaut.http.annotation.Put
import io.micronaut.http.hateos.JsonError
import io.reactivex.Single
@Controller("/person")
class PersonController {
final PersonService personService
PersonController(PersonService personService) {
this.personService = personService
}
@Get("/")
Single<HttpResponse<?>> list() {
Single.just(personService.list()).map({ result ->
HttpResponse.ok(result)
}).onErrorReturn({ throwable ->
new JsonError(throwable.message)
})
}
@Get("/{id}")
Single<HttpResponse<?>> get(Long id){
Single.just(personService.get(id)).map({ result ->
HttpResponse.ok(result)
})onErrorReturn({ throwable ->
new JsonError(throwable.message)
})
}
@Post("/")
Single<Person> save(Person person){
Single.just(personService.save(person))
}
@Put("/")
Single<Person> update(Person person){
Single.just(personService.save(person))
}
@Delete("/")
Single<HttpResponse<?>> delete(Person person){
Single.just(person.delete()).map({ result ->
HttpResponse.ok(result)
}).onErrorReturn({ throwable ->
new JsonError(throwable.message)
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment