how can pass api parameter in body instead @Query tag android kotlin retrofit
i want pass parameter in body instead api @Query
my api interface
@Multipart
@POST("add_passport.php")
suspend fun addPassport(
@Part image: MultipartBody.Part?,
@Query("userid") userid: String,
@Query("fistname") fistname: String,
@Query("surname") surname: String,
@Query("nationality") nationality: String,
@Query("dof") dof: String,
@Query("gender") gender: String,
@Query("age") age: String,
@Query("sig") sig: String,
@Query("salt") salt: String
):Response<PassportInsertApiClass>
repository class
suspend fun addPassport(image: MultipartBody.Part?, userid: String,fistname:String,surname:String,nationality:String,
gender:String, dof:String,age:String,sig:String,salt:String):Response<PassportInsertApiClass>{
return RetrofitInstance.api.addPassport(image, userid,fistname,surname,nationality,gender,dof,age,sig,salt)
}
View model
fun addPassport(image: MultipartBody.Part?, userid: String,fistname:String,surname:String,nationality:String,
dof:String,gender:String,age:String,sig:String,salt:String):
MutableLiveData<Response<PassportInsertApiClass>>{
val addPassport = MutableLiveData<Response<PassportInsertApiClass>>()
viewModelScope.launch {
addPassport.postValue(repository.addPassport(image, userid, fistname, surname, nationality, dof, gender, age, sig, salt))
}
return addPassport
}
fragment/activity
settingViewModel.addPassport(body,userId,fistname,surname,nationality,dof,gender,age,sig1,salt1).observe(this, { response ->
if (response.isSuccessful){
if (response.body()?.status == 1 ){
Toast.makeText(context, "passport update", Toast.LENGTH_SHORT).show()
}
else {
Toast.makeText(context, "something went wrong", Toast.LENGTH_SHORT).show()
}
}
binding.progress.isVisible = false
})