Commit 75dddeea authored by yinjiacheng's avatar yinjiacheng

update 用户反馈接口迁移到BSetting组件

parent 672b2865
......@@ -44,6 +44,9 @@ class AppConfig {
const val TowerApiKeyTagMerchantC = "function-config-c"
const val TowerApiVersion = "1.0.0"
// 任意门域名定义
const val JiraDomain = "https://hub.go2yd.com"
// 用户反馈配置
const val feedbackAssignee = "chengxiaofeng" // 经办人
const val feedbackProject = "10721" // 项目
......
......@@ -7,17 +7,8 @@ import okhttp3.Response
class ApiSaveCookiesInterceptor : Interceptor {
companion object {
// 忽略cookie的host集合
val cookieInterceptWhiteList = arrayListOf(CommonService.DOMAIN_YD_JIRA)
}
override fun intercept(chain: Interceptor.Chain): Response {
val originalResponse = chain.proceed(chain.request())
// 如果当前请求host在白名单内则不进行cookie拦截
if (cookieInterceptWhiteList.contains(chain.request().url.host)) {
return originalResponse
}
val cookieList = originalResponse.headers("Set-Cookie")
if (cookieList.isNotEmpty()) {
for (cookie in cookieList) {
......
package com.yidian.bcommon.http
import com.yidian.bcommon.http.bean.CommitFeedbackBean
import com.yidian.bcommon.http.callback.ICommitFeedbackCallback
import com.yidian.http.ServiceFactory
/**
* author: yinjiacheng
* date: 7/8/21 4:54 PM
* description: Common网络请求实现
*/
object CommonDataSource {
private val ydJiraApi by lazy {
ServiceFactory.getInstance().createService(CommonService::class.java, CommonService.SCHEME_HTTPS + CommonService.DOMAIN_YD_JIRA)
}
// 用户反馈提交
fun commitFeedback(apiCallback: ICommitFeedbackCallback, requestParams: CommitFeedbackBean.CommitFeedbackRequest) {
ydJiraApi
.commitFeedback(requestParams)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultObserver<CommitFeedbackBean.CommitFeedbackResponse>() {
override fun onSuccess(result: HttpResult<CommitFeedbackBean.CommitFeedbackResponse>?) {
apiCallback.commitFeedbackSuccess(result?.result)
}
override fun onFailure(result: HttpResult<CommitFeedbackBean.CommitFeedbackResponse>?) {
apiCallback.commitFeedbackFailure(result?.reason)
}
})
}
}
package com.yidian.bcommon.http
import com.yidian.bcommon.http.bean.CommitFeedbackBean
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Body
import retrofit2.http.Headers
import retrofit2.http.POST
/**
* author: yinjiacheng
* date: 7/8/21 4:53 PM
* description: Common网络请求定义
*/
interface CommonService {
companion object {
const val SCHEME_HTTP = "http://"
const val SCHEME_HTTPS = "https://"
// 一点jira域名定义
const val DOMAIN_YD_JIRA = "hub.go2yd.com"
// 用户反馈提交
private const val commitFeedback = "/feedback/save"
}
@Headers("Content-Type: application/json")
@POST(commitFeedback)
fun commitFeedback(@Body requestParams: CommitFeedbackBean.CommitFeedbackRequest): Observable<HttpResult<CommitFeedbackBean.CommitFeedbackResponse>>
}
package com.yidian.bcommon.http.bean
/**
* author: yinjiacheng
* date: 5/23/21 12:13 PM
* description: 获取金山云bucket和objectId
*/
class GetKSYunObjectIdBean {
data class Response(val bucket: String, val objectId: String)
}
package com.yidian.bcommon.http.bean
/**
* author: yinjiacheng
* date: 5/23/21 12:13 PM
* description: 获取金山云token
*/
class GetKSYunTokenBean(val request: Request, val response: Response) {
data class Request(
val http_method: String,
val date: String,
val resource: String,
val content_md5: String,
val content_type: String,
val headers: String
)
data class Response(val token: String)
}
package com.yidian.bcommon.http.callback
import com.yidian.bcommon.http.bean.GetKSYunObjectIdBean
/**
* author: yinjiacheng
* date: 5/23/21 12:18 PM
* description: 获取金山云ObjectId
*/
interface IGetKSYunObjectIdCallback {
fun getKSYunObjectIdSuccess(result: GetKSYunObjectIdBean.Response?)
fun getKSYunObjectIdFailure(message: String?)
}
package com.yidian.shenghuoquan.bsetting.http
import com.yidian.bcommon.http.HttpResult
import com.yidian.bcommon.http.bean.CommitFeedbackBean
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.GET
import retrofit2.http.QueryMap
import retrofit2.http.*
interface SettingApiService {
private companion object {
const val mobileLogin = "/user/user/login"
const val userLogout = "/user/user/logout"
const val commitFeedback = "/feedback/save"
}
/**
......@@ -24,5 +25,11 @@ interface SettingApiService {
@GET(userLogout)
fun userLogout(@QueryMap commonParams: Map<String, String>, @QueryMap params: Map<String, String?>): Observable<HttpResult<Any?>>
/**
* 用户反馈提交
*/
@Headers("Content-Type: application/json")
@POST(commitFeedback)
fun commitFeedback(@Body requestParams: CommitFeedbackBean.CommitFeedbackRequest): Observable<HttpResult<CommitFeedbackBean.CommitFeedbackResponse>>
}
package com.yidian.shenghuoquan.bsetting.http
import com.yidian.bcommon.http.HttpParamsUtils
import com.yidian.bcommon.http.HttpResult
import com.yidian.bcommon.http.HttpResultSubscriber
import com.yidian.bcommon.http.TransformUtil
import com.yidian.bcommon.constant.AppConfig
import com.yidian.bcommon.http.*
import com.yidian.bcommon.http.bean.CommitFeedbackBean
import com.yidian.bcommon.http.callback.ICommitFeedbackCallback
import com.yidian.http.ServiceFactory
import com.yidian.shenghuoquan.bsetting.bean.MobileLoginBean
......@@ -11,6 +11,10 @@ object SettingRemoteDataSource {
private var api = ServiceFactory.getInstance().createService(SettingApiService::class.java)
private val jiraApi by lazy {
ServiceFactory.getInstance().createService(SettingApiService::class.java, AppConfig.JiraDomain)
}
/**
* 手机号登录
*/
......@@ -50,4 +54,23 @@ object SettingRemoteDataSource {
})
}
/**
* 用户反馈提交
*/
fun commitFeedback(apiCallback: ICommitFeedbackCallback, requestParams: CommitFeedbackBean.CommitFeedbackRequest) {
jiraApi
.commitFeedback(requestParams)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultObserver<CommitFeedbackBean.CommitFeedbackResponse>() {
override fun onSuccess(result: HttpResult<CommitFeedbackBean.CommitFeedbackResponse>?) {
apiCallback.commitFeedbackSuccess(result?.result)
}
override fun onFailure(result: HttpResult<CommitFeedbackBean.CommitFeedbackResponse>?) {
apiCallback.commitFeedbackFailure(result?.reason)
}
})
}
}
......@@ -2,13 +2,13 @@ package com.yidian.shenghuoquan.bsetting.ui.setting
import androidx.lifecycle.MutableLiveData
import com.orhanobut.hawk.Hawk
import com.yidian.bcommon.constant.AppConfig
import com.yidian.bcommon.BuildConfig
import com.yidian.bcommon.constant.AppConfig
import com.yidian.bcommon.constant.HawkConfig
import com.yidian.bcommon.http.CommonDataSource
import com.yidian.bcommon.http.bean.CommitFeedbackBean
import com.yidian.bcommon.http.callback.ICommitFeedbackCallback
import com.yidian.bcommon.mvvm.BaseViewModel
import com.yidian.shenghuoquan.bsetting.http.SettingRemoteDataSource
/**
* author: yinjiacheng
......@@ -53,7 +53,7 @@ class FeedbackViewModel : BaseViewModel(), ICommitFeedbackCallback {
}
// 拼接获取到的用户信息
val description = "uid:${Hawk.get(HawkConfig.UserId, 0L)},appversion:${BuildConfig.VERSION_NAME},platform:${AppConfig.feedbackPlatform}"
CommonDataSource.commitFeedback(
SettingRemoteDataSource.commitFeedback(
this, CommitFeedbackBean.CommitFeedbackRequest(
CommitFeedbackBean.Fields(
CommitFeedbackBean.Assignee(AppConfig.feedbackAssignee),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment