chore: Remove unused UserRepository.findAllByEmails method (#30645)

This repository query method is unused in both repos, except for a test
which is only asserting the behaviour of this method istelf.
This commit is contained in:
Shrikant Sharat Kandula 2024-01-30 18:45:04 +05:30 committed by GitHub
parent 1842d1495c
commit 9cd2e74038
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 12 additions and 94 deletions

View File

@ -3,31 +3,15 @@ package com.appsmith.server.repositories.ce;
import com.appsmith.server.acl.AclPermission;
import com.appsmith.server.domains.User;
import com.appsmith.server.repositories.AppsmithRepository;
import com.querydsl.core.types.dsl.StringPath;
import org.springframework.data.domain.Sort;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.Optional;
import java.util.Set;
public interface CustomUserRepositoryCE extends AppsmithRepository<User> {
Mono<User> findByEmail(String email, AclPermission aclPermission);
Flux<User> findAllByEmails(Set<String> emails);
Mono<User> findByCaseInsensitiveEmail(String email);
Mono<User> findByEmailAndTenantId(String email, String tenantId);
Mono<Boolean> isUsersEmpty();
Flux<User> getAllByEmails(
Set<String> emails,
Optional<AclPermission> aclPermission,
int limit,
int skip,
StringPath sortKey,
Sort.Direction sortDirection);
}

View File

@ -6,19 +6,15 @@ import com.appsmith.server.domains.QUser;
import com.appsmith.server.domains.User;
import com.appsmith.server.repositories.BaseAppsmithRepositoryImpl;
import com.appsmith.server.repositories.CacheableRepositoryHelper;
import com.querydsl.core.types.dsl.StringPath;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.regex.Pattern;
@ -41,14 +37,6 @@ public class CustomUserRepositoryCEImpl extends BaseAppsmithRepositoryImpl<User>
return queryOne(List.of(emailCriteria), aclPermission);
}
@Override
public Flux<User> findAllByEmails(Set<String> emails) {
Criteria emailCriteria = where(fieldName(QUser.user.email)).in(emails);
Query query = new Query();
query.addCriteria(emailCriteria);
return mongoOperations.find(query, User.class);
}
@Override
public Mono<User> findByCaseInsensitiveEmail(String email) {
String findEmailRegex = String.format("^%s$", Pattern.quote(email));
@ -90,19 +78,6 @@ public class CustomUserRepositoryCEImpl extends BaseAppsmithRepositoryImpl<User>
.map(count -> count == 0);
}
@Override
public Flux<User> getAllByEmails(
Set<String> emails,
Optional<AclPermission> aclPermission,
int limit,
int skip,
StringPath sortKey,
Sort.Direction sortDirection) {
Sort sortBy = Sort.by(sortDirection, fieldName(sortKey));
Criteria emailCriteria = where(fieldName(QUser.user.email)).in(emails);
return queryAll(List.of(emailCriteria), Optional.empty(), aclPermission, sortBy, limit, skip);
}
protected Set<String> getSystemGeneratedUserEmails() {
Set<String> systemGeneratedEmails = new HashSet<>();
systemGeneratedEmails.add(FieldName.ANONYMOUS_USER);

View File

@ -3,14 +3,19 @@ package com.appsmith.server.repositories.ce;
import com.appsmith.server.domains.User;
import com.appsmith.server.repositories.BaseRepository;
import com.appsmith.server.repositories.CustomUserRepository;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.Set;
public interface UserRepositoryCE extends BaseRepository<User, String>, CustomUserRepository {
Mono<User> findByEmail(String email);
Mono<User> findByCaseInsensitiveEmail(String email);
Flux<User> findAllByEmailIn(Set<String> emails);
/**
* This method returns the count of all users that are not deleted and are not system generated.
*

View File

@ -751,7 +751,7 @@ public class UserServiceCEImpl extends BaseService<UserRepository, User, String>
@Override
public Flux<User> getAllByEmails(Set<String> emails, AclPermission permission) {
return repository.findAllByEmails(emails);
return repository.findAllByEmailIn(emails);
}
@Override

View File

@ -1,6 +1,5 @@
package com.appsmith.server.repositories;
import com.appsmith.server.domains.QUser;
import com.appsmith.server.domains.User;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterEach;
@ -8,21 +7,16 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Sort;
import org.springframework.test.annotation.DirtiesContext;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.IntStream;
import static com.appsmith.server.repositories.ce.BaseAppsmithRepositoryCEImpl.fieldName;
import static org.junit.jupiter.api.Assertions.assertEquals;
@SpringBootTest
@ -130,56 +124,16 @@ public class UserRepositoryTest {
.limit(countOfUsersToBeCreated)
.mapToObj(index -> uuid + "_" + index + "@gmail.com")
.toList();
List<String> sortedEmails = new ArrayList<>(unsortedEmails);
Collections.sort(sortedEmails);
List<User> createdUsers = unsortedEmails.stream()
.map(email -> {
User user = new User();
user.setEmail(email);
return userRepository.save(user).block();
})
.toList();
unsortedEmails.forEach(email -> {
User user = new User();
user.setEmail(email);
userRepository.save(user).block();
});
List<User> allCreatedUsers = userRepository
.findAllByEmails(new HashSet<>(unsortedEmails))
.findAllByEmailIn(new HashSet<>(unsortedEmails))
.collectList()
.block();
assertEquals(countOfUsersToBeCreated, allCreatedUsers.size());
Sort sortByEmailAsc = Sort.by(Sort.Direction.ASC, fieldName(QUser.user.email));
final int skip1 = 0;
int limit1 = 10;
List<User> usersFrom0To10 = userRepository
.getAllByEmails(
new HashSet<>(unsortedEmails),
Optional.empty(),
limit1,
skip1,
QUser.user.email,
Sort.Direction.ASC)
.collectList()
.block();
assertEquals(usersFrom0To10.size(), limit1);
List<String> subList0To10 = sortedEmails.subList(skip1, skip1 + limit1);
IntStream.range(skip1, skip1 + limit1).forEach(index -> {
usersFrom0To10.get(index - skip1).getEmail().equals(subList0To10.get(index - skip1));
});
final int skip2 = 9, limit2 = 10;
List<User> usersFrom9To19 = userRepository
.getAllByEmails(
new HashSet<>(unsortedEmails),
Optional.empty(),
limit2,
skip2,
QUser.user.email,
Sort.Direction.ASC)
.collectList()
.block();
assertEquals(usersFrom9To19.size(), limit2);
List<String> subList9To19 = sortedEmails.subList(skip2, skip2 + limit2);
IntStream.range(skip2, skip2 + limit2).forEach(index -> {
usersFrom9To19.get(index - skip2).getEmail().equals(subList9To19.get(index - skip2));
});
}
}