UNPKG

matrix-js-sdk

Version:
81 lines (77 loc) 3.67 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.PollEndEvent = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _extensible_events = require("../@types/extensible_events"); var _polls = require("../@types/polls"); var _ExtensibleEvent = require("./ExtensibleEvent"); var _InvalidEventError = require("./InvalidEventError"); var _MessageEvent = require("./MessageEvent"); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /** * Represents a poll end/closure event. */ class PollEndEvent extends _ExtensibleEvent.ExtensibleEvent { /** * The poll start event ID referenced by the response. */ /** * The closing message for the event. */ /** * Creates a new PollEndEvent from a pure format. Note that the event is *not* * parsed here: it will be treated as a literal m.poll.response primary typed event. * @param wireFormat - The event. */ constructor(wireFormat) { super(wireFormat); (0, _defineProperty2.default)(this, "pollEventId", void 0); (0, _defineProperty2.default)(this, "closingMessage", void 0); const rel = this.wireContent["m.relates_to"]; if (!_extensible_events.REFERENCE_RELATION.matches(rel === null || rel === void 0 ? void 0 : rel.rel_type) || typeof (rel === null || rel === void 0 ? void 0 : rel.event_id) !== "string") { throw new _InvalidEventError.InvalidEventError("Relationship must be a reference to an event"); } this.pollEventId = rel.event_id; this.closingMessage = new _MessageEvent.MessageEvent(this.wireFormat); } isEquivalentTo(primaryEventType) { return (0, _extensible_events.isEventTypeSame)(primaryEventType, _polls.M_POLL_END); } serialize() { return { type: _polls.M_POLL_END.name, content: _objectSpread({ "m.relates_to": { rel_type: _extensible_events.REFERENCE_RELATION.name, event_id: this.pollEventId }, [_polls.M_POLL_END.name]: {} }, this.closingMessage.serialize().content) }; } /** * Creates a new PollEndEvent from a poll event ID. * @param pollEventId - The poll start event ID. * @param message - A closing message, typically revealing the top answer. * @returns The representative poll closure event. */ static from(pollEventId, message) { return new PollEndEvent({ type: _polls.M_POLL_END.name, content: { "m.relates_to": { rel_type: _extensible_events.REFERENCE_RELATION.name, event_id: pollEventId }, [_polls.M_POLL_END.name]: {}, [_extensible_events.M_TEXT.name]: message } }); } } exports.PollEndEvent = PollEndEvent; //# sourceMappingURL=PollEndEvent.js.map