Skip to content

Commit 45ddb56

Browse files
Remove query & pagination-related internal code from public api package (#106)
Co-authored-by: Aleksandar Apostolov <[email protected]>
1 parent c45c8de commit 45ddb56

File tree

106 files changed

+740
-381
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+740
-381
lines changed

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/model/PaginationData.kt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
*/
1616
package io.getstream.feeds.android.client.api.model
1717

18-
import io.getstream.feeds.android.network.models.PagerResponse
19-
2018
/**
2119
* Data class representing pagination information for a paginated response.
2220
*
@@ -33,19 +31,3 @@ public data class PaginationData(
3331
public val EMPTY: PaginationData = PaginationData()
3432
}
3533
}
36-
37-
/**
38-
* Data class representing a paginated result containing a list of models and pagination data.
39-
*
40-
* @param T The type of the models in the list.
41-
* @property models The list of models in the paginated result.
42-
* @property pagination The pagination data for the result.
43-
*/
44-
internal data class PaginationResult<T>(val models: List<T>, val pagination: PaginationData)
45-
46-
/**
47-
* Extension function to convert a [PagerResponse] to a [PaginationData] model.
48-
*
49-
* @return A [PaginationData] instance containing the next and previous cursors.
50-
*/
51-
internal fun PagerResponse.toModel(): PaginationData = PaginationData(next = next, previous = prev)

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/ActivitiesQuery.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,10 @@ package io.getstream.feeds.android.client.api.state.query
1717

1818
import io.getstream.android.core.api.filter.Filter
1919
import io.getstream.android.core.api.filter.FilterField
20-
import io.getstream.android.core.api.filter.toRequest
2120
import io.getstream.android.core.api.sort.Sort
2221
import io.getstream.android.core.api.sort.SortDirection
2322
import io.getstream.android.core.api.sort.SortField
2423
import io.getstream.feeds.android.client.api.model.ActivityData
25-
import io.getstream.feeds.android.client.api.model.QueryConfiguration
26-
import io.getstream.feeds.android.client.internal.model.mapping.toRequest
27-
import io.getstream.feeds.android.network.models.QueryActivitiesRequest
2824

2925
/**
3026
* A query for retrieving activities with filtering, sorting, and pagination options.
@@ -66,9 +62,6 @@ public data class ActivitiesQuery(
6662
*/
6763
public typealias ActivitiesFilter = Filter<ActivityData, ActivitiesFilterField>
6864

69-
internal typealias ActivitiesQueryConfig =
70-
QueryConfiguration<ActivityData, ActivitiesFilterField, ActivitiesSort>
71-
7265
/** Represents a field that can be used to filter activities. */
7366
public data class ActivitiesFilterField(
7467
override val remote: String,
@@ -202,13 +195,3 @@ public sealed interface ActivitiesSortField : SortField<ActivityData> {
202195
ActivitiesSortField,
203196
SortField<ActivityData> by SortField.create("popularity", ActivityData::popularity)
204197
}
205-
206-
/** Converts the [ActivitiesQuery] to a [QueryActivitiesRequest]. */
207-
internal fun ActivitiesQuery.toRequest(): QueryActivitiesRequest =
208-
QueryActivitiesRequest(
209-
filter = filter?.toRequest(),
210-
sort = sort?.map { it.toRequest() },
211-
limit = limit,
212-
next = next,
213-
prev = previous,
214-
)

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/ActivityReactionsQuery.kt

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,10 @@ package io.getstream.feeds.android.client.api.state.query
1717

1818
import io.getstream.android.core.api.filter.Filter
1919
import io.getstream.android.core.api.filter.FilterField
20-
import io.getstream.android.core.api.filter.toRequest
2120
import io.getstream.android.core.api.sort.Sort
2221
import io.getstream.android.core.api.sort.SortDirection
2322
import io.getstream.android.core.api.sort.SortField
2423
import io.getstream.feeds.android.client.api.model.FeedsReactionData
25-
import io.getstream.feeds.android.client.api.model.QueryConfiguration
26-
import io.getstream.feeds.android.client.internal.model.mapping.toRequest
27-
import io.getstream.feeds.android.network.models.QueryActivityReactionsRequest
2824

2925
/**
3026
* A query for retrieving activity reactions with filtering, sorting, and pagination options.
@@ -60,9 +56,6 @@ public data class ActivityReactionsQuery(
6056
*/
6157
public typealias ActivityReactionsFilter = Filter<FeedsReactionData, ActivityReactionsFilterField>
6258

63-
internal typealias ActivityReactionsQueryConfig =
64-
QueryConfiguration<FeedsReactionData, ActivityReactionsFilterField, ActivityReactionsSort>
65-
6659
/** Represents a field that can be used to filter activity reactions. */
6760
public data class ActivityReactionsFilterField(
6861
override val remote: String,
@@ -147,11 +140,3 @@ public sealed interface ActivityReactionsSortField : SortField<FeedsReactionData
147140
*
148141
* @return A [QueryActivityReactionsRequest] containing the same parameters as this query.
149142
*/
150-
internal fun ActivityReactionsQuery.toRequest(): QueryActivityReactionsRequest =
151-
QueryActivityReactionsRequest(
152-
filter = filter?.toRequest(),
153-
limit = limit,
154-
next = next,
155-
prev = previous,
156-
sort = sort?.map { it.toRequest() },
157-
)

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/BookmarkFoldersQuery.kt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,10 @@ package io.getstream.feeds.android.client.api.state.query
1717

1818
import io.getstream.android.core.api.filter.Filter
1919
import io.getstream.android.core.api.filter.FilterField
20-
import io.getstream.android.core.api.filter.toRequest
2120
import io.getstream.android.core.api.sort.Sort
2221
import io.getstream.android.core.api.sort.SortDirection
2322
import io.getstream.android.core.api.sort.SortField
2423
import io.getstream.feeds.android.client.api.model.BookmarkFolderData
25-
import io.getstream.feeds.android.client.api.model.QueryConfiguration
26-
import io.getstream.feeds.android.client.internal.model.mapping.toRequest
27-
import io.getstream.feeds.android.network.models.QueryBookmarkFoldersRequest
2824

2925
/**
3026
* A query for retrieving bookmark folders with filtering, sorting, and pagination options.
@@ -58,9 +54,6 @@ public data class BookmarkFoldersQuery(
5854
*/
5955
public typealias BookmarkFoldersFilter = Filter<BookmarkFolderData, BookmarkFoldersFilterField>
6056

61-
internal typealias BookmarkFoldersQueryConfig =
62-
QueryConfiguration<BookmarkFolderData, BookmarkFoldersFilterField, BookmarkFoldersSort>
63-
6457
/** Represents a field that can be used to filter bookmark folders. */
6558
public data class BookmarkFoldersFilterField(
6659
override val remote: String,
@@ -145,14 +138,3 @@ public sealed interface BookmarkFoldersSortField : SortField<BookmarkFolderData>
145138
BookmarkFolderData::updatedAt,
146139
)
147140
}
148-
149-
/** Converts the [BookmarkFoldersQuery] to a [QueryBookmarkFoldersRequest]. */
150-
internal fun BookmarkFoldersQuery.toRequest(): QueryBookmarkFoldersRequest {
151-
return QueryBookmarkFoldersRequest(
152-
filter = filter?.toRequest(),
153-
sort = sort?.map { it.toRequest() },
154-
limit = limit,
155-
next = next,
156-
prev = previous,
157-
)
158-
}

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/BookmarksQuery.kt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,10 @@ package io.getstream.feeds.android.client.api.state.query
1717

1818
import io.getstream.android.core.api.filter.Filter
1919
import io.getstream.android.core.api.filter.FilterField
20-
import io.getstream.android.core.api.filter.toRequest
2120
import io.getstream.android.core.api.sort.Sort
2221
import io.getstream.android.core.api.sort.SortDirection
2322
import io.getstream.android.core.api.sort.SortField
2423
import io.getstream.feeds.android.client.api.model.BookmarkData
25-
import io.getstream.feeds.android.client.api.model.QueryConfiguration
26-
import io.getstream.feeds.android.client.internal.model.mapping.toRequest
27-
import io.getstream.feeds.android.network.models.QueryBookmarksRequest
2824

2925
/**
3026
* A query for retrieving bookmarks with filtering, sorting, and pagination options.
@@ -57,9 +53,6 @@ public data class BookmarksQuery(
5753
*/
5854
public typealias BookmarksFilter = Filter<BookmarkData, BookmarksFilterField>
5955

60-
internal typealias BookmarksQueryConfig =
61-
QueryConfiguration<BookmarkData, BookmarksFilterField, BookmarksSort>
62-
6356
/** Represents a field that can be used to filter bookmarks. */
6457
public data class BookmarksFilterField(
6558
override val remote: String,
@@ -153,14 +146,3 @@ public sealed interface BookmarksSortField : SortField<BookmarkData> {
153146
BookmarksSortField,
154147
SortField<BookmarkData> by SortField.create("updated_at", BookmarkData::updatedAt)
155148
}
156-
157-
/** Converts the [BookmarksQuery] to a [QueryBookmarksRequest]. */
158-
internal fun BookmarksQuery.toRequest(): QueryBookmarksRequest {
159-
return QueryBookmarksRequest(
160-
filter = filter?.toRequest(),
161-
sort = sort?.map { it.toRequest() },
162-
limit = limit,
163-
next = next,
164-
prev = previous,
165-
)
166-
}

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/CommentReactionsQuery.kt

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,10 @@ package io.getstream.feeds.android.client.api.state.query
1717

1818
import io.getstream.android.core.api.filter.Filter
1919
import io.getstream.android.core.api.filter.FilterField
20-
import io.getstream.android.core.api.filter.toRequest
2120
import io.getstream.android.core.api.sort.Sort
2221
import io.getstream.android.core.api.sort.SortDirection
2322
import io.getstream.android.core.api.sort.SortField
2423
import io.getstream.feeds.android.client.api.model.FeedsReactionData
25-
import io.getstream.feeds.android.client.api.model.QueryConfiguration
26-
import io.getstream.feeds.android.client.internal.model.mapping.toRequest
27-
import io.getstream.feeds.android.network.models.QueryCommentReactionsRequest
2824

2925
/**
3026
* A query configuration for fetching reactions for a specific comment.
@@ -65,9 +61,6 @@ public data class CommentReactionsQuery(
6561
*/
6662
public typealias CommentReactionsFilter = Filter<FeedsReactionData, CommentReactionsFilterField>
6763

68-
internal typealias CommentReactionsQueryConfig =
69-
QueryConfiguration<FeedsReactionData, CommentReactionsFilterField, CommentReactionsSort>
70-
7164
/** Represents a field that can be used to filter comment reactions. */
7265
public data class CommentReactionsFilterField(
7366
override val remote: String,
@@ -136,11 +129,3 @@ public sealed interface CommentReactionSortField : SortField<FeedsReactionData>
136129
}
137130

138131
/** Converts a [CommentReactionsQuery] to the corresponding [QueryCommentReactionsRequest]. */
139-
internal fun CommentReactionsQuery.toRequest(): QueryCommentReactionsRequest =
140-
QueryCommentReactionsRequest(
141-
filter = filter?.toRequest(),
142-
limit = limit,
143-
next = next,
144-
prev = previous,
145-
sort = sort?.map { it.toRequest() },
146-
)

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/CommentsQuery.kt

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ package io.getstream.feeds.android.client.api.state.query
1717

1818
import io.getstream.android.core.api.filter.Filter
1919
import io.getstream.android.core.api.filter.FilterField
20-
import io.getstream.android.core.api.filter.toRequest
2120
import io.getstream.feeds.android.client.api.model.CommentData
22-
import io.getstream.feeds.android.network.models.QueryCommentsRequest
2321
import java.util.Date
2422

2523
/**
@@ -210,49 +208,9 @@ public sealed interface CommentsSort {
210208
public data object Top : CommentsSort
211209
}
212210

213-
/** Converts a [CommentsQuery] to the corresponding [QueryCommentsRequest]. */
214-
internal fun CommentsQuery.toRequest(): QueryCommentsRequest =
215-
QueryCommentsRequest(
216-
filter = filter?.toRequest().orEmpty(),
217-
limit = limit,
218-
next = next,
219-
prev = previous,
220-
sort = sort?.toRequest(),
221-
)
222-
223-
/**
224-
* Converts a [CommentsSort] to the corresponding [QueryCommentsRequest.Sort].
225-
*
226-
* @return The [QueryCommentsRequest.Sort] representation of this [CommentsSort].
227-
*/
228-
internal fun CommentsSort.toRequest(): QueryCommentsRequest.Sort =
229-
when (this) {
230-
CommentsSort.Best -> QueryCommentsRequest.Sort.Best
231-
CommentsSort.Controversial -> QueryCommentsRequest.Sort.Controversial
232-
CommentsSort.First -> QueryCommentsRequest.Sort.First
233-
CommentsSort.Last -> QueryCommentsRequest.Sort.Last
234-
CommentsSort.Top -> QueryCommentsRequest.Sort.Top
235-
}
236-
237211
internal interface CommentsSortDataFields {
238212
val createdAt: Date
239213
val confidenceScore: Float
240214
val controversyScore: Float?
241215
val score: Int
242216
}
243-
244-
internal fun CommentsSort?.toComparator(): Comparator<CommentsSortDataFields> =
245-
when (this) {
246-
CommentsSort.Top ->
247-
compareByDescending(CommentsSortDataFields::score)
248-
.thenByDescending(CommentsSortDataFields::createdAt)
249-
250-
CommentsSort.Best ->
251-
compareByDescending(CommentsSortDataFields::confidenceScore)
252-
.thenByDescending(CommentsSortDataFields::createdAt)
253-
254-
CommentsSort.Controversial -> compareByDescending { it.controversyScore ?: -1f }
255-
CommentsSort.First -> compareBy(CommentsSortDataFields::createdAt)
256-
CommentsSort.Last,
257-
null -> compareByDescending(CommentsSortDataFields::createdAt)
258-
}

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/FeedQuery.kt

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,8 @@
1515
*/
1616
package io.getstream.feeds.android.client.api.state.query
1717

18-
import io.getstream.android.core.api.filter.toRequest
1918
import io.getstream.feeds.android.client.api.model.FeedId
2019
import io.getstream.feeds.android.client.api.model.FeedInputData
21-
import io.getstream.feeds.android.client.api.model.toRequest
22-
import io.getstream.feeds.android.network.models.GetOrCreateFeedRequest
23-
import io.getstream.feeds.android.network.models.PagerRequest
2420

2521
/**
2622
* A query configuration for retrieving and managing feed data from Stream feeds.
@@ -112,25 +108,3 @@ public data class FeedQuery(
112108
watch = watch,
113109
)
114110
}
115-
116-
/**
117-
* Converts this [FeedQuery] to a [GetOrCreateFeedRequest].
118-
*
119-
* @return A [GetOrCreateFeedRequest] representing the feed query.
120-
*/
121-
internal fun FeedQuery.toRequest(): GetOrCreateFeedRequest =
122-
GetOrCreateFeedRequest(
123-
limit = activityLimit,
124-
next = activityNext,
125-
prev = activityPrevious,
126-
view = view,
127-
watch = watch,
128-
activitySelectorOptions = activitySelectorOptions,
129-
data = data?.toRequest(),
130-
externalRanking = externalRanking,
131-
filter = activityFilter?.toRequest(),
132-
followersPagination = followerLimit?.let { PagerRequest(it) },
133-
followingPagination = followingLimit?.let { PagerRequest(it) },
134-
interestWeights = interestWeights,
135-
memberPagination = memberLimit?.let { PagerRequest(it) },
136-
)

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/state/query/FeedsQuery.kt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,11 @@ package io.getstream.feeds.android.client.api.state.query
1717

1818
import io.getstream.android.core.api.filter.Filter
1919
import io.getstream.android.core.api.filter.FilterField
20-
import io.getstream.android.core.api.filter.toRequest
2120
import io.getstream.android.core.api.sort.Sort
2221
import io.getstream.android.core.api.sort.SortDirection
2322
import io.getstream.android.core.api.sort.SortField
2423
import io.getstream.feeds.android.client.api.model.FeedData
25-
import io.getstream.feeds.android.client.api.model.QueryConfiguration
26-
import io.getstream.feeds.android.client.internal.model.mapping.toRequest
2724
import io.getstream.feeds.android.client.internal.state.query.unsupportedLocalValue
28-
import io.getstream.feeds.android.network.models.QueryFeedsRequest
2925

3026
/**
3127
* A query for retrieving feeds with filtering, sorting, and pagination options.
@@ -68,8 +64,6 @@ public data class FeedsQuery(
6864
/** A type alias representing a filter specifically for [FeedData] using [FeedsFilterField]. */
6965
public typealias FeedsFilter = Filter<FeedData, FeedsFilterField>
7066

71-
internal typealias FeedsQueryConfig = QueryConfiguration<FeedData, FeedsFilterField, FeedsSort>
72-
7367
/** Represents a field that can be used to filter feeds. */
7468
public data class FeedsFilterField(
7569
override val remote: String,
@@ -275,21 +269,3 @@ public sealed interface FeedsSortField : SortField<FeedData> {
275269
FeedsSortField,
276270
SortField<FeedData> by SortField.create("following_count", FeedData::followingCount)
277271
}
278-
279-
/**
280-
* Converts the [FeedsQuery] to a [QueryFeedsRequest].
281-
*
282-
* This function maps the properties of the [FeedsQuery] to the corresponding fields in the
283-
* [QueryFeedsRequest], allowing it to be used in API requests.
284-
*
285-
* @return A [QueryFeedsRequest] object with the properties from this query.
286-
*/
287-
internal fun FeedsQuery.toRequest(): QueryFeedsRequest =
288-
QueryFeedsRequest(
289-
limit = limit,
290-
next = next,
291-
prev = previous,
292-
watch = watch,
293-
sort = sort?.map { it.toRequest() },
294-
filter = filter?.toRequest(),
295-
)

0 commit comments

Comments
 (0)