Newer
Older
TagAndroid / app / src / main / kotlin / org / ntlab / tag / api / room / RoomApiClient.kt
MatsumotoKeiju on 9 Jul 2017 5 KB [add] TagAndroid Project
package org.ntlab.tag.api.regist

import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import org.ntlab.tag.Constant
import org.ntlab.tag.api.BaseApi
import org.ntlab.tag.model.RxBus

/**
 * Created by matsumoto_k on 2017/07/07.
 */
object RoomApiClient : BaseApi() {

    fun getRooms() {
        val getRoomService = getClient().create(RoomService::class.java).getRooms()
        getRoomService.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : Observer<ArrayList<RoomApiResponse>> {
                    override fun onSubscribe(d: Disposable?) {
                        println("onSubscribeGetRoom")
                    }

                    override fun onComplete() {
                        println("test")
                    }

                    override fun onNext(value: ArrayList<RoomApiResponse>?) {
                        if (value != null) {
                            RxBus.send(value)
                        }
                    }

                    override fun onError(e: Throwable?) {
                        println("onError")
                        println(e?.message)
                    }
                })
    }

    fun postRooms(userId: Int, roomName: String) {
        val getRoomService = getClient().create(RoomService::class.java).postRooms(userId, roomName)
        getRoomService.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : Observer<RoomApiResponse> {
                    override fun onSubscribe(d: Disposable?) {
                        println("onSubscribePostRoom")
                    }

                    override fun onComplete() {
                    }

                    override fun onNext(value: RoomApiResponse?) {
                        if (value != null) {
                            RxBus.send(value)
                        }
                    }

                    override fun onError(e: Throwable?) {
                        println("onError")
                        println(e?.message)
                    }
                })
    }

    fun putRooms(userId: Int, roomId: Int) {
        val getRoomService = getClient().create(RoomService::class.java).putRooms(userId, roomId)
        getRoomService.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : Observer<RoomApiResponse> {
                    override fun onSubscribe(d: Disposable?) {
                        println("onSubscribePutRoom")
                    }

                    override fun onComplete() {
                    }

                    override fun onNext(value: RoomApiResponse?) {
                        if (value != null) {
                            RxBus.send(value)
                        }
                    }

                    override fun onError(e: Throwable?) {
                        println("onError")
                        println(e?.message)
                    }
                })
    }

    fun outRoom(out: String) {
        println("${Constant.END_POINT}rooms/${out}")
        print("outRoomですよ")
        val outRoomService = getClient().create(RoomService::class.java).outRooms(out)
        outRoomService.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object :Observer<Void>{
                    override fun onComplete() {

                    }

                    override fun onError(e: Throwable?) {
                        println(e)
                    }

                    override fun onSubscribe(d: Disposable?) {

                    }

                    override fun onNext(value: Void?) {
                        println("onNext")
                    }
                })

    }

    fun deleteRoom(roomId: Int) {
        getClient().create(RoomService::class.java).deleteRoom(roomId)
    }

    fun getInRoom(userId: Int, roomId: Int) {
        val getRoomService = getClient().create(RoomService::class.java).getRoom(roomId = roomId, userId = userId)
        getRoomService.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : Observer<RoomApiResponse> {
                    override fun onSubscribe(d: Disposable?) {
                        println("onSubscribePutRoom")
                    }

                    override fun onComplete() {
                    }

                    override fun onNext(value: RoomApiResponse?) {
                        if (value != null) {
                            RxBus.send(value)
                        }
                    }

                    override fun onError(e: Throwable?) {
                        println("onError")
                        println(e?.message)
                    }
                })
    }

    fun updateRoom(userId: Int, roomId: Int, start: Boolean, ready: Boolean) {
        val getRoomService = getClient().create(RoomService::class.java).updateRoom(roomId = roomId, userId = userId, ready = ready, start = start)
        getRoomService.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : Observer<RoomApiResponse> {
                    override fun onSubscribe(d: Disposable?) {
                        println("onSubscribePutRoom")
                    }

                    override fun onComplete() {
                    }

                    override fun onNext(value: RoomApiResponse?) {
                        if (value != null) {
                            RxBus.send(value)
                        }
                    }

                    override fun onError(e: Throwable?) {
                        println("onError")
                        println(e?.message)
                    }
                })
    }

}