sendinblue / APIv3-java-library

SendinBlue's API v3 Java Library
MIT License
42 stars 12 forks source link

UpdateContact, boolean attributes are not updating #30

Open frellan opened 3 years ago

frellan commented 3 years ago

Hello!

I cannot get boolean attributes to update when using the updateContact endpoint of the ContactsApi ith this SDK.

What value are you supposed to send in the Properties object? I Have tried true, TRUE, 1, Yes and nothing works. It just send 204 like all is okay but nothing happens. Below are the code. Its Kotlin, but its just the same. the user.sharingShopping field is a Boolean type.

val params = UpdateContact().apply {
    attributes = Properties().apply {
        setProperty("SHARING_SHOPPING", user.sharingShopping.toString())
    }
}
apiInstance.updateContact(user.userEmail, params)
daneanbulosan commented 3 years ago

Hi @frellan

I found a workaround for this. Instead of using Propreties use the JSON Object instead

e.i JSONObject body = new JSONObject(); body.put("SHARING_SHOPPING", user.sharingShopping);

This works for me.

Kool-Hussain commented 1 year ago

Hi @frellan , I am able to replicate the issue on my end and will share the fix asap. Thanks

feenhoernchen commented 11 months ago

Another workaround (as this issue is not fixed) and you use version 7.0.0 over at Maven. https://mvnrepository.com/artifact/com.sendinblue/sib-api-v3-sdk/7.0.0

The workaround is to not use the Properties class and just use a normal HashMap instead and pass this to the UpdateContact class.

Map<Object, Object> attributes = new HashMap<>();
attributes.put("BOOLEANVALUE", false);
UpdateContact updateContact = new UpdateContact();
updateContact.setAttributes(attributes);
contactsApi.updateContact(email, updateContact);