Skip to content

Commit b60e43d

Browse files
committed
feat: move poll db updates to llc
1 parent ef74c86 commit b60e43d

File tree

4 files changed

+32
-22
lines changed

4 files changed

+32
-22
lines changed

package/src/components/Chat/hooks/handleEventToSyncDB.ts

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { deleteChannel } from '../../../store/apis/deleteChannel';
44
import { deleteMember } from '../../../store/apis/deleteMember';
55
import { deleteMessagesForChannel } from '../../../store/apis/deleteMessagesForChannel';
66
import { updateMessage } from '../../../store/apis/updateMessage';
7-
import { updatePollMessage } from '../../../store/apis/updatePollMessage';
87
import { upsertChannelData } from '../../../store/apis/upsertChannelData';
98
import { upsertChannelDataFromChannel } from '../../../store/apis/upsertChannelDataFromChannel';
109
import { upsertMembers } from '../../../store/apis/upsertMembers';
@@ -264,26 +263,5 @@ export const handleEventToSyncDB = async (event: Event, client: StreamChat, flus
264263
}
265264
}
266265

267-
if (
268-
[
269-
'poll.closed',
270-
'poll.updated',
271-
'poll.vote_casted',
272-
'poll.vote_changed',
273-
'poll.vote_removed',
274-
].includes(type)
275-
) {
276-
const { poll, poll_vote, type } = event;
277-
if (poll) {
278-
return updatePollMessage({
279-
eventType: type,
280-
flush,
281-
poll,
282-
poll_vote,
283-
userID: client?.userID || '',
284-
});
285-
}
286-
}
287-
288266
return [];
289267
};

package/src/store/OfflineDB.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ export class OfflineDB extends AbstractOfflineDB {
3131
upsertAppSettings = ({ appSettings, userId, flush }: UpsertAppSettingsType) =>
3232
api.upsertAppSettings({ appSettings, currentUserId: userId, flush });
3333

34+
upsertPoll = api.upsertPoll;
35+
3436
// FIXME
3537
getChannels = ({ cids, userId }: GetChannelsType) =>
3638
api.getChannels({ channelIds: cids, currentUserId: userId });

package/src/store/apis/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export * from './upsertMembers';
2525
export * from './upsertMessages';
2626
export * from './upsertReads';
2727
export * from './updatePollMessage';
28+
export * from './upsertPoll';
2829
export * from './addPendingTask';
2930
export * from './deletePendingTask';
3031
export * from './getPendingTasks';
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { PollResponse } from 'stream-chat';
2+
3+
import { mapPollToStorable } from '../mappers/mapPollToStorable';
4+
import { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';
5+
import { SqliteClient } from '../SqliteClient';
6+
import type { PreparedQueries } from '../types';
7+
8+
export const upsertPoll = async ({
9+
flush = true,
10+
poll,
11+
}: {
12+
poll: PollResponse;
13+
flush?: boolean;
14+
}) => {
15+
const queries: PreparedQueries[] = [];
16+
17+
const storablePoll = mapPollToStorable(poll);
18+
19+
queries.push(createUpsertQuery('poll', storablePoll));
20+
SqliteClient.logger?.('info', 'upsertPoll', {
21+
poll: storablePoll,
22+
});
23+
24+
if (flush) {
25+
await SqliteClient.executeSqlBatch(queries);
26+
}
27+
28+
return queries;
29+
};

0 commit comments

Comments
 (0)