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
JavaScript
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