package co.ab180.airbridge.reactnative.module import co.ab180.airbridge.Airbridge import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod import com.facebook.react.bridge.ReadableMap import com.facebook.react.bridge.ReadableType internal class RegisterInteractor( reactContext: ReactApplicationContext? ) : ReactContextBaseJavaModule(reactContext) { override fun getName(): String = "RegisterInteractor" @ReactMethod fun setUserID(id: String) { Airbridge.setUserID(id) } @ReactMethod fun clearUserID() { Airbridge.clearUserID() } @ReactMethod fun setUserEmail(email: String) { Airbridge.setUserEmail(email) } @ReactMethod fun clearUserEmail() { Airbridge.clearUserEmail() } @ReactMethod fun setUserPhone(phone: String) { Airbridge.setUserPhone(phone) } @ReactMethod fun clearUserPhone() { Airbridge.clearUserPhone() } @ReactMethod fun setUserAttribute(option: ReadableMap) { val key = option.getString("key") ?: return val value = option.getDynamic("value") if (value.isNull) return when(value.type) { ReadableType.Number -> Airbridge.setUserAttribute(key, value.asDouble()) ReadableType.String -> value.asString()?.run { Airbridge.setUserAttribute(key, this) } ReadableType.Boolean -> Airbridge.setUserAttribute(key, value.asBoolean()) else -> {} } } @ReactMethod fun removeUserAttribute(key: String) { Airbridge.removeUserAttribute(key) } @ReactMethod fun clearUserAttributes() { Airbridge.clearUserAttributes() } @ReactMethod fun setUserAlias(key: String, value: String) { Airbridge.setUserAlias(key, value) } @ReactMethod fun removeUserAlias(key: String) { Airbridge.removeUserAlias(key) } @ReactMethod fun clearUserAlias() { Airbridge.clearUserAlias() } @ReactMethod fun clearUser() { Airbridge.clearUser() } @ReactMethod fun setDeviceAlias(key: String, value: String) { Airbridge.setDeviceAlias(key, value) } @ReactMethod fun removeDeviceAlias(key: String) { Airbridge.removeDeviceAlias(key) } @ReactMethod fun clearDeviceAlias() { Airbridge.clearDeviceAlias() } @ReactMethod fun registerPushToken(token: String) { Airbridge.registerPushToken(token) } }