Search in sources :

Example 1 with User

use of com.nextcloud.talk.models.database.User in project talk-android by nextcloud.

the class UserUtils method createOrUpdateUser.

public Observable<UserEntity> createOrUpdateUser(@Nullable String username, @Nullable String token, @Nullable String serverUrl, @Nullable String displayName, @Nullable String pushConfigurationState, @Nullable Boolean currentUser, @Nullable String userId, @Nullable Long internalId, @Nullable String capabilities) {
    Result findUserQueryResult;
    if (internalId == null) {
        findUserQueryResult = dataStore.select(User.class).where(UserEntity.USERNAME.eq(username).and(UserEntity.BASE_URL.eq(serverUrl))).limit(1).get();
    } else {
        findUserQueryResult = dataStore.select(User.class).where(UserEntity.ID.eq(internalId)).get();
    }
    UserEntity user = (UserEntity) findUserQueryResult.firstOrNull();
    if (user == null) {
        user = new UserEntity();
        user.setBaseUrl(serverUrl);
        user.setUsername(username);
        user.setToken(token);
        if (!TextUtils.isEmpty(displayName)) {
            user.setDisplayName(displayName);
        }
        if (pushConfigurationState != null) {
            user.setPushConfigurationState(pushConfigurationState);
        }
        if (!TextUtils.isEmpty(userId)) {
            user.setUserId(userId);
        }
        if (!TextUtils.isEmpty(capabilities)) {
            user.setCapabilities(capabilities);
        }
        user.setCurrent(true);
    } else {
        if (userId != null && (user.getUserId() == null || !user.getUserId().equals(userId))) {
            user.setUserId(userId);
        }
        if (token != null && !token.equals(user.getToken())) {
            user.setToken(token);
        }
        if ((displayName != null && user.getDisplayName() == null) || (displayName != null && user.getDisplayName() != null && !displayName.equals(user.getDisplayName()))) {
            user.setDisplayName(displayName);
        }
        if (pushConfigurationState != null && !pushConfigurationState.equals(user.getPushConfigurationState())) {
            user.setPushConfigurationState(pushConfigurationState);
        }
        if (capabilities != null && !capabilities.equals(user.getCapabilities())) {
            user.setCapabilities(capabilities);
        }
        if (currentUser != null) {
            user.setCurrent(currentUser);
        }
    }
    return dataStore.upsert(user).toObservable().subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread());
}
Also used : User(com.nextcloud.talk.models.database.User) UserEntity(com.nextcloud.talk.models.database.UserEntity) Result(io.requery.query.Result)

Example 2 with User

use of com.nextcloud.talk.models.database.User in project talk-android by nextcloud.

the class UserUtils method deleteUser.

public Completable deleteUser(String username, String serverUrl) {
    Result findUserQueryResult = dataStore.select(User.class).where(UserEntity.USERNAME.eq(username).and(UserEntity.BASE_URL.eq(serverUrl))).limit(1).get();
    UserEntity user = (UserEntity) findUserQueryResult.firstOrNull();
    return dataStore.delete(user).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread());
}
Also used : User(com.nextcloud.talk.models.database.User) UserEntity(com.nextcloud.talk.models.database.UserEntity) Result(io.requery.query.Result)

Aggregations

User (com.nextcloud.talk.models.database.User)2 UserEntity (com.nextcloud.talk.models.database.UserEntity)2 Result (io.requery.query.Result)2