diff --git a/src/index.ts b/src/index.ts index 42a680c..ea156a7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -141,6 +141,7 @@ export type { SpaceReputationContextParams, SpaceReputationUserParams, } from "./interfaces/SpaceReputation"; +export type { UserSearchParams } from "./interfaces/UserSearch"; export type { Collection } from "./interfaces/Collection"; export type { Space, SpaceDetailed, SpacePreview, DigestConfig, SpaceBreadcrumb } from "./interfaces/Space"; export type { SpaceMember, SpaceMemberWithUser } from "./interfaces/SpaceMember"; diff --git a/src/interfaces/UserSearch.ts b/src/interfaces/UserSearch.ts new file mode 100644 index 0000000..3515491 --- /dev/null +++ b/src/interfaces/UserSearch.ts @@ -0,0 +1,13 @@ +/** + * Shared optional params for text-searching a list of users + * (followers / following / connections). + * + * - `query` — free-text search term. When omitted, no filtering is applied. + * - `searchFields` — narrows which user field the term matches against. When + * omitted, the term matches either `username` OR `name` (case-insensitive + * substring). `"username"` / `"name"` restrict the match to that one field. + */ +export interface UserSearchParams { + query?: string; + searchFields?: "username" | "name"; +} diff --git a/src/modules/connections/fetchConnections.ts b/src/modules/connections/fetchConnections.ts index d779ced..df34fdf 100644 --- a/src/modules/connections/fetchConnections.ts +++ b/src/modules/connections/fetchConnections.ts @@ -1,8 +1,9 @@ import { SublayHttpClient } from "../../core/client"; import { EstablishedConnection } from "../../interfaces/Connection"; import { PaginatedResponse } from "../../interfaces/IPaginatedResponse"; +import { UserSearchParams } from "../../interfaces/UserSearch"; -export interface FetchConnectionsProps { +export interface FetchConnectionsProps extends UserSearchParams { userId: string; page?: number; limit?: number; diff --git a/src/modules/follows/fetchFollowers.ts b/src/modules/follows/fetchFollowers.ts index 9f019fc..f47e6c6 100644 --- a/src/modules/follows/fetchFollowers.ts +++ b/src/modules/follows/fetchFollowers.ts @@ -1,8 +1,9 @@ import { SublayHttpClient } from "../../core/client"; import { Follow } from "../../interfaces/Follow"; import { PaginatedResponse } from "../../interfaces/IPaginatedResponse"; +import { UserSearchParams } from "../../interfaces/UserSearch"; -export interface FetchFollowersProps { +export interface FetchFollowersProps extends UserSearchParams { userId: string; page?: number; limit?: number; diff --git a/src/modules/follows/fetchFollowing.ts b/src/modules/follows/fetchFollowing.ts index 5f5d53f..72c5acb 100644 --- a/src/modules/follows/fetchFollowing.ts +++ b/src/modules/follows/fetchFollowing.ts @@ -1,8 +1,9 @@ import { SublayHttpClient } from "../../core/client"; import { Follow } from "../../interfaces/Follow"; import { PaginatedResponse } from "../../interfaces/IPaginatedResponse"; +import { UserSearchParams } from "../../interfaces/UserSearch"; -export interface FetchFollowingProps { +export interface FetchFollowingProps extends UserSearchParams { userId: string; page?: number; limit?: number; diff --git a/src/modules/users/fetchConnectionsByUserId.ts b/src/modules/users/fetchConnectionsByUserId.ts index 0552a2c..67de1f1 100644 --- a/src/modules/users/fetchConnectionsByUserId.ts +++ b/src/modules/users/fetchConnectionsByUserId.ts @@ -2,10 +2,12 @@ import { SublayHttpClient } from "../../core/client"; import { EstablishedConnection } from "../../interfaces/Connection"; import { PaginatedResponse } from "../../interfaces/IPaginatedResponse"; import { SpaceReputationUserParams } from "../../interfaces/SpaceReputation"; +import { UserSearchParams } from "../../interfaces/UserSearch"; import { buildSpaceReputationParams } from "../../core/spaceReputationParams"; export interface FetchConnectionsByUserIdProps - extends SpaceReputationUserParams { + extends SpaceReputationUserParams, + UserSearchParams { userId: string; page?: number; limit?: number; diff --git a/src/modules/users/fetchFollowersByUserId.ts b/src/modules/users/fetchFollowersByUserId.ts index 9e33021..1082b69 100644 --- a/src/modules/users/fetchFollowersByUserId.ts +++ b/src/modules/users/fetchFollowersByUserId.ts @@ -1,10 +1,13 @@ import { SublayHttpClient } from "../../core/client"; import { User } from "../../interfaces/User"; import { SpaceReputationUserParams } from "../../interfaces/SpaceReputation"; +import { UserSearchParams } from "../../interfaces/UserSearch"; import { buildSpaceReputationParams } from "../../core/spaceReputationParams"; import { PaginatedResponse } from "../../interfaces/IPaginatedResponse"; -export interface FetchFollowersByUserIdProps extends SpaceReputationUserParams { +export interface FetchFollowersByUserIdProps + extends SpaceReputationUserParams, + UserSearchParams { userId: string; page?: number; limit?: number; diff --git a/src/modules/users/fetchFollowingByUserId.ts b/src/modules/users/fetchFollowingByUserId.ts index 7331065..04156ec 100644 --- a/src/modules/users/fetchFollowingByUserId.ts +++ b/src/modules/users/fetchFollowingByUserId.ts @@ -1,10 +1,13 @@ import { SublayHttpClient } from "../../core/client"; import { User } from "../../interfaces/User"; import { SpaceReputationUserParams } from "../../interfaces/SpaceReputation"; +import { UserSearchParams } from "../../interfaces/UserSearch"; import { buildSpaceReputationParams } from "../../core/spaceReputationParams"; import { PaginatedResponse } from "../../interfaces/IPaginatedResponse"; -export interface FetchFollowingByUserIdProps extends SpaceReputationUserParams { +export interface FetchFollowingByUserIdProps + extends SpaceReputationUserParams, + UserSearchParams { userId: string; page?: number; limit?: number;