package com.cooleshow.base.rx

import com.cooleshow.base.common.ResultCode
import com.cooleshow.base.data.protocol.BaseResp
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.functions.Function
import rx.functions.Func1

/*
    通用数据类型转换封装
 */
//class BaseFunc<T>: Func1<BaseResp<T>, Observable<T>> {
//    override fun call(t: BaseResp<T>): Observable<T> {
//        if (t.status != ResultCode.SUCCESS){
//            return Observable.error(BaseException(t.status,t.message))
//        }
//
//        return Observable.just(t.data)
//    }
//}

class BaseFunc<T>: Function<BaseResp<T>, Observable<T>> {
    override fun apply(t: BaseResp<T>): Observable<T> {
        if (t.status != ResultCode.SUCCESS){
            return Observable.error(BaseException(t.status,t.message))
        }

        return Observable.just(t.data)
    }

}
