AudioApiRequestUtil.kt 4.7 KB
Newer Older
洪国微 committed
1 2 3 4
package com.ydl.audioim.http

import com.google.gson.Gson
import com.ydl.audioim.bean.AgoraTokenResponse
5
import com.ydl.audioim.bean.CallEventRequestBody
洪国微 committed
6
import com.ydl.audioim.bean.ConnectBean
7 8 9
import com.ydl.audioim.http.command.ConnectCommand
import com.ydl.audioim.http.command.ConnectExceptionCommand
import com.ydl.audioim.http.command.NoticePushCommand
严久程 committed
10 11
import com.ydl.consultantim.bean.ListenTokenBean
import com.ydl.consultantim.command.ListenTokenCmd
洪国微 committed
12 13 14
import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlcommon.data.http.BaseResponse
import com.ydl.ydlcommon.data.http.RxUtils
严久程 committed
15
import com.ydl.ydlcommon.utils.NetworkParamsUtils
刘鹏 committed
16
import com.ydl.ydlcommon.utils.TimeUtil
洪国微 committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
import com.ydl.ydlnet.YDLHttpUtils
import io.reactivex.Observable
import okhttp3.MediaType
import okhttp3.RequestBody

/**
 * @author jiucheng
 * @描述:声网业务接口请求
 * @Copyright Copyright (c) 2018
 * @Company 壹点灵
 * @date 2018/11/9
 */
class AudioApiRequestUtil {
    companion object {
        /**
         * 倾诉
         */
        fun connectListen(cmd: ConnectCommand): Observable<BaseAPIResponse<ConnectBean>> {
            return RxUtils.mapObservable(cmd)
36 37 38
                .flatMap { it ->
                    YDLHttpUtils.obtainApi(AudioNetAPi::class.java).connectListen(it)
                }
洪国微 committed
39 40 41 42 43 44 45 46
        }

        /**
         * 通话开始回调
         *
         * @param param
         * @return
         */
47 48 49 50 51 52
//        fun connectStart(param: ConnectStartCommand): Observable<BaseAPIResponse<Any>> {
////            val list = YdlRetrofitUtils.getPostList(param)
//            var str = Gson().toJson(param)
//            val body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), str) as RequestBody
//            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java).connectStart(body)
//        }
洪国微 committed
53 54 55 56 57 58 59

        /**
         * 通话结束回调
         *
         * @param param
         * @return
         */
60 61 62 63 64 65
//        fun connectFinish(param: ConnectFinishCommand): Observable<BaseAPIResponse<Any>> {
////            val list = YdlRetrofitUtils.getPostList(param)
//            var str = Gson().toJson(param)
//            val body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), str) as RequestBody
//            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java).connectFinish(body)
//        }
洪国微 committed
66

67 68 69 70 71 72 73 74
        /**
         * 通话警告与异常回调
         *
         * @param param
         * @return
         */
        fun connectException(param: ConnectExceptionCommand): Observable<BaseAPIResponse<Any>> {
            var str = Gson().toJson(param)
75 76 77 78
            val body = RequestBody.create(
                MediaType.parse("application/json; charset=utf-8"),
                str
            ) as RequestBody
79 80 81
            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java).connectException(body)
        }

洪国微 committed
82 83 84 85 86
        /**
         * 通知服务端发送推送
         */
        fun noticeServerPush(param: NoticePushCommand): Observable<BaseResponse<Any>> {
            var str = Gson().toJson(param)
87 88 89 90
            val body = RequestBody.create(
                MediaType.parse("application/json; charset=utf-8"),
                str
            ) as RequestBody
洪国微 committed
91 92 93
            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java).noticeServerPush(body)
        }

94
        /**
洪国微 committed
95 96
         * 获取声网登录token
         */
97
        fun getAgoraToken(): Observable<BaseAPIResponse<AgoraTokenResponse>> {
洪国微 committed
98
            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java).getAgoraToken()
洪国微 committed
99
        }
严久程 committed
100 101 102 103

        /**
         * 获取声网登录token
         */
104
        fun listenToken(cmd: ListenTokenCmd): Observable<BaseResponse<ListenTokenBean>> {
105 106
            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java)
                .listenToken(NetworkParamsUtils.getMaps(cmd))
严久程 committed
107
        }
108

109 110 111 112 113 114 115
        fun callEndStatusUpdate(
            channelId: String,
            endStatus: Int,
            msg: String
        ): Observable<BaseAPIResponse<Any>> {
            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java)
                .callEndStatusUpdate(channelId, endStatus, msg)
116
        }
刘鹏 committed
117

118 119 120 121 122 123
        fun callEventSave(
            session: String?,
            line: String,
            status: String,
            response: String
        ): Observable<BaseAPIResponse<Any>> {
刘鹏 committed
124
            var eventTime = TimeUtil.getNowDatetime()
125 126 127 128 129 130 131
            var param = CallEventRequestBody(session, line, status, response, eventTime);
            var str = Gson().toJson(param)
            val body = RequestBody.create(
                MediaType.parse("application/json; charset=utf-8"),
                str
            ) as RequestBody
            return YDLHttpUtils.obtainApi(AudioNetAPi::class.java).callEventSave(body)
刘鹏 committed
132
        }
洪国微 committed
133 134
    }
}