Skip to content

Commit 5bc1831

Browse files
committed
add query message histories
1 parent d527ac6 commit 5bc1831

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
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: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3088,3 +3088,42 @@ export type PollVotesAPIResponse<StreamChatGenerics extends ExtendableGenerics =
30883088
export type CastVoteAPIResponse<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = {
30893089
vote: PollVote<StreamChatGenerics>;
30903090
};
3091+
3092+
export type QueryMessageHistoriesFilters = QueryFilters<
3093+
{
3094+
message_id?:
3095+
| RequireOnlyOne<Pick<QueryFilter<MessageHistory['message_id']>, '$eq' | '$in'>>
3096+
| PrimitiveFilter<MessageHistory['message_id']>;
3097+
} & {
3098+
user_id?:
3099+
| RequireOnlyOne<Pick<QueryFilter<MessageHistory['user_id']>, '$eq' | '$in'>>
3100+
| PrimitiveFilter<MessageHistory['user_id']>;
3101+
} & {
3102+
created_at?:
3103+
| RequireOnlyOne<Pick<QueryFilter<MessageHistory['created_at']>, '$eq' | '$gt' | '$lt' | '$gte' | '$lte'>>
3104+
| PrimitiveFilter<MessageHistory['created_at']>;
3105+
}
3106+
>;
3107+
3108+
export type QueryMessageHistoriesSort = QueryMessageHistoriesSortBase | Array<QueryMessageHistoriesSortBase>;
3109+
3110+
export type QueryMessageHistoriesSortBase = {
3111+
created_at?: AscDesc;
3112+
user_id?: AscDesc;
3113+
};
3114+
3115+
export type QueryMessageHistoriesOptions = Pager;
3116+
3117+
export type MessageHistory<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = {
3118+
created_at: string;
3119+
message_id: string;
3120+
attachments?: Attachment<StreamChatGenerics>[];
3121+
text?: string;
3122+
user_id?: string;
3123+
};
3124+
3125+
export type QueryMessageHistoriesResponse<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = {
3126+
message_histories: MessageHistory<StreamChatGenerics>[];
3127+
next?: string;
3128+
prev?: string;
3129+
};

0 commit comments

Comments
 (0)