Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class IsSeatBookedUseCase(
- private val ticketService: TicketService
- ) {
- fun execute(request: Request): Observable<Result<Boolean>> {
- return ticketService.isSeatAlloted(request.seatNumber)
- .concatMap { it.toDataObservable() }
- .concatMap {
- when (it) {
- false -> it.toResult().toObservable()
- true -> SEAT_ALREADY_BOOKED_ERROR.toResult<Boolean>().toObservable()
- }
- }
- .onErrorReturn { it.toErrorResult() }
- }
- class Request(
- val seatNumber: String
- )
- companion object {
- val SEAT_ALREADY_BOOKED_ERROR = Error(103, "This seat is already booked")
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement