Skip to content

Commit 9460eac

Browse files
committed
feat: add query message histories
1 parent 7e02ac8 commit 9460eac

File tree

2 files changed

+65
-3
lines changed

2 files changed

+65
-3
lines changed

src/client.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,10 @@ import {
197197
ReactionSort,
198198
QueryReactionsAPIResponse,
199199
QueryReactionsOptions,
200+
QueryMessageHistoriesFilters,
201+
QueryMessageHistoriesSort,
202+
QueryMessageHistoriesOptions,
203+
QueryMessageHistoriesResponse,
200204
} from './types';
201205
import { InsightMetrics, postInsights } from './insights';
202206
import { Thread } from './thread';
@@ -3647,4 +3651,23 @@ export class StreamChat<StreamChatGenerics extends ExtendableGenerics = DefaultG
36473651
...options,
36483652
});
36493653
}
3654+
3655+
/**
3656+
* Queries message histories
3657+
* @param filter
3658+
* @param sort
3659+
* @param options Option object, {limit: 10}
3660+
* @returns {APIResponse & QueryMessageHistoriesResponse} The message histories
3661+
*/
3662+
async queryMessageHistories(
3663+
filter: QueryMessageHistoriesFilters = {},
3664+
sort: QueryMessageHistoriesSort = [],
3665+
options: QueryMessageHistoriesOptions = {},
3666+
): Promise<APIResponse & QueryMessageHistoriesResponse> {
3667+
return await this.post<APIResponse & QueryMessageHistoriesResponse>(this.baseURL + '/message-histories', {
3668+
filter,
3669+
sort: normalizeQuerySort(sort),
3670+
...options,
3671+
});
3672+
}
36503673
}

src/types.ts

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1667,9 +1667,9 @@ export type UserFilters<StreamChatGenerics extends ExtendableGenerics = DefaultG
16671667
| PrimitiveFilter<UserResponse<StreamChatGenerics>['name']>;
16681668
notifications_muted?:
16691669
| RequireOnlyOne<{
1670-
$eq?: PrimitiveFilter<UserResponse<StreamChatGenerics>['notifications_muted']>;
1671-
}>
1672-
| boolean;
1670+
$eq?: PrimitiveFilter<UserResponse<StreamChatGenerics>['notifications_muted']>;
1671+
}>
1672+
| boolean;
16731673
teams?:
16741674
| RequireOnlyOne<{
16751675
$contains?: PrimitiveFilter<string>;
@@ -3093,3 +3093,42 @@ export type PollVotesAPIResponse<StreamChatGenerics extends ExtendableGenerics =
30933093
export type CastVoteAPIResponse<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = {
30943094
vote: PollVote<StreamChatGenerics>;
30953095
};
3096+
3097+
export type QueryMessageHistoriesFilters = QueryFilters<
3098+
{
3099+
message_id?:
3100+
| RequireOnlyOne<Pick<QueryFilter<MessageHistory['message_id']>, '$eq' | '$in'>>
3101+
| PrimitiveFilter<MessageHistory['message_id']>;
3102+
} & {
3103+
user_id?:
3104+
| RequireOnlyOne<Pick<QueryFilter<MessageHistory['user_id']>, '$eq' | '$in'>>
3105+
| PrimitiveFilter<MessageHistory['user_id']>;
3106+
} & {
3107+
created_at?:
3108+
| RequireOnlyOne<Pick<QueryFilter<MessageHistory['created_at']>, '$eq' | '$gt' | '$lt' | '$gte' | '$lte'>>
3109+
| PrimitiveFilter<MessageHistory['created_at']>;
3110+
}
3111+
>;
3112+
3113+
export type QueryMessageHistoriesSort = QueryMessageHistoriesSortBase | Array<QueryMessageHistoriesSortBase>;
3114+
3115+
export type QueryMessageHistoriesSortBase = {
3116+
created_at?: AscDesc;
3117+
user_id?: AscDesc;
3118+
};
3119+
3120+
export type QueryMessageHistoriesOptions = Pager;
3121+
3122+
export type MessageHistory<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = {
3123+
created_at: string;
3124+
message_id: string;
3125+
attachments?: Attachment<StreamChatGenerics>[];
3126+
text?: string;
3127+
user_id?: string;
3128+
};
3129+
3130+
export type QueryMessageHistoriesResponse<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = {
3131+
message_histories: MessageHistory<StreamChatGenerics>[];
3132+
next?: string;
3133+
prev?: string;
3134+
};

0 commit comments

Comments
 (0)