UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

69 lines 3.49 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.upsertMessages = void 0; var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _mapMessageToStorable = require("../mappers/mapMessageToStorable"); var _mapPollToStorable = require("../mappers/mapPollToStorable"); var _mapReactionToStorable = require("../mappers/mapReactionToStorable"); var _mapReminderToStorable = require("../mappers/mapReminderToStorable"); var _mapSharedLocationToStorable = require("../mappers/mapSharedLocationToStorable"); var _mapUserToStorable = require("../mappers/mapUserToStorable"); var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery"); var _SqliteClient = require("../SqliteClient"); var upsertMessages = exports.upsertMessages = function () { var _ref = (0, _asyncToGenerator2.default)(function* ({ execute = true, messages }) { var storableMessages = []; var storableUsers = []; var storableReactions = []; var storablePolls = []; var storableReminders = []; var storableLocations = []; messages?.forEach(message => { if (message.parent_id && !message.show_in_channel) { return; } storableMessages.push((0, _mapMessageToStorable.mapMessageToStorable)(message)); if (message.user) { storableUsers.push((0, _mapUserToStorable.mapUserToStorable)(message.user)); } [...(message.latest_reactions || []), ...(message.own_reactions || [])].forEach(r => { if (r.user) { storableUsers.push((0, _mapUserToStorable.mapUserToStorable)(r.user)); } storableReactions.push((0, _mapReactionToStorable.mapReactionToStorable)(r)); }); if (message.poll) { storablePolls.push((0, _mapPollToStorable.mapPollToStorable)(message.poll)); } if (message.reminder) { storableReminders.push((0, _mapReminderToStorable.mapReminderToStorable)(message.reminder)); } if (message.shared_location) { storableLocations.push((0, _mapSharedLocationToStorable.mapSharedLocationToStorable)(message.shared_location)); } }); var finalQueries = [...storableMessages.map(storableMessage => (0, _createUpsertQuery.createUpsertQuery)('messages', storableMessage)), ...storableUsers.map(storableUser => (0, _createUpsertQuery.createUpsertQuery)('users', storableUser)), ...storableReactions.map(storableReaction => (0, _createUpsertQuery.createUpsertQuery)('reactions', storableReaction)), ...storablePolls.map(storablePoll => (0, _createUpsertQuery.createUpsertQuery)('poll', storablePoll)), ...storableReminders.map(storableReminder => (0, _createUpsertQuery.createUpsertQuery)('reminders', storableReminder)), ...storableLocations.map(storableLocation => (0, _createUpsertQuery.createUpsertQuery)('locations', storableLocation))]; _SqliteClient.SqliteClient.logger?.('info', 'upsertMessages', { execute, locations: storableLocations, messages: storableMessages, polls: storablePolls, reactions: storableReactions, reminders: storableReminders, users: storableUsers }); if (execute) { yield _SqliteClient.SqliteClient.executeSqlBatch(finalQueries); } return finalQueries; }); return function upsertMessages(_x) { return _ref.apply(this, arguments); }; }(); //# sourceMappingURL=upsertMessages.js.map