新增:webhook发送通道增加PUT/PATCH请求方式 #206

This commit is contained in:
pppscn 2022-09-22 23:05:06 +08:00
parent c00e61ece1
commit 3430dbbe8e

View File

@ -81,7 +81,8 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
override fun initViews() { override fun initViews() {
//测试按钮增加倒计时,避免重复点击 //测试按钮增加倒计时,避免重复点击
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, SettingUtils.requestTimeout) mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, SettingUtils.requestTimeout)
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener { mCountDownHelper!!.setOnCountDownListener(object :
CountDownButtonHelper.OnCountDownListener {
override fun onCountDown(time: Int) { override fun onCountDown(time: Int) {
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time) binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
} }
@ -131,7 +132,12 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
//set header //set header
if (settingVo.headers != null) { if (settingVo.headers != null) {
for ((key, value) in settingVo.headers) { for ((key, value) in settingVo.headers) {
addHeaderItemLinearLayout(headerItemMap, binding!!.layoutHeaders, key, value) addHeaderItemLinearLayout(
headerItemMap,
binding!!.layoutHeaders,
key,
value
)
} }
} }
} }
@ -143,8 +149,16 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
binding!!.btnTest.setOnClickListener(this) binding!!.btnTest.setOnClickListener(this)
binding!!.btnDel.setOnClickListener(this) binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this) binding!!.btnSave.setOnClickListener(this)
binding!!.btnAddHeader.setOnClickListener { addHeaderItemLinearLayout(headerItemMap, binding!!.layoutHeaders, null, null) } binding!!.btnAddHeader.setOnClickListener {
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).observe(this) { mCountDownHelper?.finish() } addHeaderItemLinearLayout(
headerItemMap,
binding!!.layoutHeaders,
null,
null
)
}
LiveEventBus.get(KEY_SENDER_TEST, String::class.java)
.observe(this) { mCountDownHelper?.finish() }
} }
@SingleClick @SingleClick
@ -157,7 +171,13 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
try { try {
val settingVo = checkSetting() val settingVo = checkSetting()
Log.d(TAG, settingVo.toString()) Log.d(TAG, settingVo.toString())
val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) val msgInfo = MsgInfo(
"sms",
getString(R.string.test_phone_num),
getString(R.string.test_sender_sms),
Date(),
getString(R.string.test_sim_info)
)
WebhookUtils.sendMsg(settingVo, msgInfo) WebhookUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
@ -197,7 +217,8 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
val status = if (binding!!.sbEnable.isChecked) 1 else 0 val status = if (binding!!.sbEnable.isChecked) 1 else 0
val settingVo = checkSetting() val settingVo = checkSetting()
if (isClone) senderId = 0 if (isClone) senderId = 0
val senderNew = Sender(senderId, senderType, name, Gson().toJson(settingVo), status) val senderNew =
Sender(senderId, senderType, name, Gson().toJson(settingVo), status)
Log.d(TAG, senderNew.toString()) Log.d(TAG, senderNew.toString())
viewModel.insertOrUpdate(senderNew) viewModel.insertOrUpdate(senderNew)
@ -218,7 +239,12 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
throw Exception(getString(R.string.invalid_webserver)) throw Exception(getString(R.string.invalid_webserver))
} }
val method = if (binding!!.rgMethod.checkedRadioButtonId == R.id.rb_method_get) "GET" else "POST" val method = when (binding!!.rgMethod.checkedRadioButtonId) {
R.id.rb_method_get -> "GET"
R.id.rb_method_put -> "PUT"
R.id.rb_method_patch -> "PATCH"
else -> "POST"
}
val secret = binding!!.etSecret.text.toString().trim() val secret = binding!!.etSecret.text.toString().trim()
val webParams = binding!!.etWebParams.text.toString().trim() val webParams = binding!!.etWebParams.text.toString().trim()
val headers = getHeadersFromHeaderItemMap(headerItemMap) val headers = getHeadersFromHeaderItemMap(headerItemMap)
@ -238,12 +264,21 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
* @param key header的key为空则不设置 * @param key header的key为空则不设置
* @param value header的value为空则不设置 * @param value header的value为空则不设置
*/ */
private fun addHeaderItemLinearLayout(headerItemMap: MutableMap<Int, LinearLayout>, linearLayoutWebNotifyHeaders: LinearLayout, key: String?, value: String?) { private fun addHeaderItemLinearLayout(
val linearLayoutItemAddHeader = View.inflate(requireContext(), R.layout.item_add_header, null) as LinearLayout headerItemMap: MutableMap<Int, LinearLayout>,
val imageViewRemoveHeader = linearLayoutItemAddHeader.findViewById<ImageView>(R.id.imageViewRemoveHeader) linearLayoutWebNotifyHeaders: LinearLayout,
key: String?,
value: String?
) {
val linearLayoutItemAddHeader =
View.inflate(requireContext(), R.layout.item_add_header, null) as LinearLayout
val imageViewRemoveHeader =
linearLayoutItemAddHeader.findViewById<ImageView>(R.id.imageViewRemoveHeader)
if (key != null && value != null) { if (key != null && value != null) {
val editTextHeaderKey = linearLayoutItemAddHeader.findViewById<EditText>(R.id.editTextHeaderKey) val editTextHeaderKey =
val editTextHeaderValue = linearLayoutItemAddHeader.findViewById<EditText>(R.id.editTextHeaderValue) linearLayoutItemAddHeader.findViewById<EditText>(R.id.editTextHeaderKey)
val editTextHeaderValue =
linearLayoutItemAddHeader.findViewById<EditText>(R.id.editTextHeaderValue)
editTextHeaderKey.setText(key) editTextHeaderKey.setText(key)
editTextHeaderValue.setText(value) editTextHeaderValue.setText(value)
} }