stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
65 lines • 2.74 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.updateMessage = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _mapMessageToStorable = require("../mappers/mapMessageToStorable");
var _mapReactionToStorable = require("../mappers/mapReactionToStorable");
var _mapUserToStorable = require("../mappers/mapUserToStorable");
var _createSelectQuery = require("../sqlite-utils/createSelectQuery");
var _createUpdateQuery = require("../sqlite-utils/createUpdateQuery");
var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery");
var _SqliteClient = require("../SqliteClient");
var updateMessage = exports.updateMessage = function () {
var _ref = (0, _asyncToGenerator2.default)(function* ({
execute = true,
message
}) {
var queries = [];
var messages = yield _SqliteClient.SqliteClient.executeSql.apply(null, (0, _createSelectQuery.createSelectQuery)('messages', ['*'], {
id: message.id
}));
if (messages.length === 0) {
return queries;
}
var storableMessage = (0, _mapMessageToStorable.mapMessageToStorable)({
...message
});
queries.push((0, _createUpdateQuery.createUpdateQuery)('messages', storableMessage, {
id: message.id
}));
var storableUsers = [];
if (message.user) {
var storableUser = (0, _mapUserToStorable.mapUserToStorable)(message.user);
storableUsers.push(storableUser);
queries.push((0, _createUpsertQuery.createUpsertQuery)('users', storableUser));
}
var latestReactions = message.latest_reactions || [];
var ownReactions = message.own_reactions || [];
var storableReactions = [];
[...latestReactions, ...ownReactions].forEach(r => {
if (r.user) {
var _storableUser = (0, _mapUserToStorable.mapUserToStorable)(r.user);
storableUsers.push(_storableUser);
queries.push((0, _createUpsertQuery.createUpsertQuery)('users', _storableUser));
}
var storableReaction = (0, _mapReactionToStorable.mapReactionToStorable)(r);
storableReactions.push(storableReaction);
queries.push((0, _createUpsertQuery.createUpsertQuery)('reactions', storableReaction));
});
_SqliteClient.SqliteClient.logger?.('info', 'updateMessage', {
message: storableMessage,
reactions: storableReactions,
users: storableUsers
});
if (execute) {
yield _SqliteClient.SqliteClient.executeSqlBatch(queries);
}
return queries;
});
return function updateMessage(_x) {
return _ref.apply(this, arguments);
};
}();
//# sourceMappingURL=updateMessage.js.map