Skip to content

Commit 2772f3b

Browse files
authored
Merge pull request #5 from viktoryoo/v130
Expose where condition for query builder with filter param
2 parents 2163ec0 + f1e226e commit 2772f3b

4 files changed

Lines changed: 24 additions & 20 deletions

File tree

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>in.kuros</groupId>
1414
<artifactId>jFirebase</artifactId>
15-
<version>1.2.7</version>
15+
<version>1.3.0</version>
1616

1717

1818
<description>This project aims at building a wrapper over nosql technologies - Firebase</description>
@@ -110,7 +110,7 @@
110110
<dependency>
111111
<groupId>com.google.cloud</groupId>
112112
<artifactId>libraries-bom</artifactId>
113-
<version>19.0.0</version>
113+
<version>26.10.0</version>
114114
<type>pom</type>
115115
<scope>import</scope>
116116
</dependency>

src/main/java/in/kuros/jfirebase/provider/firebase/query/QueryImpl.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
package in.kuros.jfirebase.provider.firebase.query;
22

3+
import static com.google.cloud.firestore.Query.Direction.DESCENDING;
4+
35
import com.google.cloud.firestore.DocumentSnapshot;
6+
import com.google.cloud.firestore.Filter;
47
import in.kuros.jfirebase.metadata.Attribute;
58
import in.kuros.jfirebase.metadata.MapAttribute;
69
import in.kuros.jfirebase.provider.firebase.EntityHelper;
710
import in.kuros.jfirebase.query.Query;
811
import in.kuros.jfirebase.util.PropertyNamingStrategy;
9-
10-
import javax.annotation.Nonnull;
1112
import java.util.ArrayList;
1213
import java.util.Arrays;
1314
import java.util.List;
1415
import java.util.function.Function;
1516
import java.util.stream.Stream;
16-
17-
import static com.google.cloud.firestore.Query.Direction.DESCENDING;
17+
import javax.annotation.Nonnull;
1818

1919
abstract class QueryImpl<T> implements Query<T> {
2020

@@ -26,6 +26,12 @@ abstract class QueryImpl<T> implements Query<T> {
2626
this.namingStrategy = EntityHelper.INSTANCE.getPropertyNamingStrategy();
2727
}
2828

29+
@Override
30+
public <X> Query<T> where (Filter filter) {
31+
queries.add(query -> query.where(filter));
32+
return this;
33+
}
34+
2935
@Override
3036
public <X> Query<T> whereEqualTo(final Attribute<T, X> field, final X value) {
3137
whereEqualTo(getNameWithStrategy(field), value);

src/main/java/in/kuros/jfirebase/query/Query.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package in.kuros.jfirebase.query;
22

3-
43
import com.google.cloud.firestore.DocumentSnapshot;
4+
import com.google.cloud.firestore.Filter;
55
import in.kuros.jfirebase.metadata.Attribute;
66
import in.kuros.jfirebase.metadata.MapAttribute;
7-
87
import java.util.List;
98

109
public interface Query<T> {
1110

11+
<X> Query<T> where(Filter filter);
1212
<X> Query<T> whereEqualTo(Attribute<T, X> field, X value);
1313

1414
<K, V> Query<T> whereEqualTo(MapAttribute<T, K, V> field, K key, V value);

src/test/java/in/kuros/jfirebase/provider/firebase/AttributeValueHelperTest.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
package in.kuros.jfirebase.provider.firebase;
22

3-
import com.fasterxml.jackson.core.JsonProcessingException;
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertIterableEquals;
5+
import static org.junit.jupiter.api.Assertions.assertNotNull;
6+
import static org.junit.jupiter.api.Assertions.assertNull;
7+
import static org.junit.jupiter.api.Assertions.assertThrows;
8+
49
import com.google.cloud.firestore.FieldPath;
510
import com.google.common.collect.Lists;
611
import in.kuros.jfirebase.entity.TestClass;
@@ -9,20 +14,13 @@
914
import in.kuros.jfirebase.metadata.AttributeValue;
1015
import in.kuros.jfirebase.metadata.MetadataProcessor;
1116
import in.kuros.jfirebase.metadata.ValuePath;
12-
import org.apache.commons.lang3.RandomStringUtils;
13-
import org.junit.jupiter.api.BeforeEach;
14-
import org.junit.jupiter.api.Test;
15-
1617
import java.util.ArrayList;
1718
import java.util.HashMap;
1819
import java.util.List;
1920
import java.util.Map;
20-
21-
import static org.junit.jupiter.api.Assertions.assertEquals;
22-
import static org.junit.jupiter.api.Assertions.assertIterableEquals;
23-
import static org.junit.jupiter.api.Assertions.assertNotNull;
24-
import static org.junit.jupiter.api.Assertions.assertNull;
25-
import static org.junit.jupiter.api.Assertions.assertThrows;
21+
import org.apache.commons.lang3.RandomStringUtils;
22+
import org.junit.jupiter.api.BeforeEach;
23+
import org.junit.jupiter.api.Test;
2624

2725
class AttributeValueHelperTest {
2826

@@ -78,7 +76,7 @@ void shouldCreateFieldPathForAttributeValues() {
7876
}
7977

8078
@Test
81-
void shouldAddValuePathsToMap() throws JsonProcessingException {
79+
void shouldAddValuePathsToMap() {
8280
final Map<String, Object> map = new HashMap<>();
8381
map.put("xyz", "lkasd");
8482

0 commit comments

Comments
 (0)