whatsapp-web.js/docs/structures_ScheduledEvent.js.html
2026-04-24 20:10:36 +00:00

137 lines
No EOL
5 KiB
HTML
Generated

<!doctype html>
<html>
<head>
<meta name="generator" content="JSDoc 3.6.11">
<meta charset="utf-8">
<title>whatsapp-web.js 1.34.7 &raquo; Source: structures/ScheduledEvent.js</title>
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css">
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css">
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css">
<link href="css/baseline.css" rel="stylesheet">
</head>
<body onload="prettyPrint()">
<nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar">
<div id="jsdoc-navbar-container">
<div id="jsdoc-navbar-content">
<a href="index.html" class="jsdoc-navbar-package-name">whatsapp-web.<wbr>js 1.<wbr>34.<wbr>7</a>
</div>
</div>
</nav>
<div id="jsdoc-body-container">
<div id="jsdoc-content">
<div id="jsdoc-content-container">
<div id="jsdoc-banner" role="banner">
</div>
<div id="jsdoc-main" role="main">
<header class="page-header">
<h1>Source: structures/ScheduledEvent.js</h1>
</header>
<article>
<pre class="prettyprint linenums"><code>&#x27;use strict&#x27;;
/**
* ScheduledEvent send options
* @typedef {Object} ScheduledEventSendOptions
* @property {?string} description The scheduled event description
* @property {?Date} endTime The end time of the event
* @property {?string} location The location of the event
* @property {?string} callType The type of a WhatsApp call link to generate, valid values are: &#x60;video&#x60; | &#x60;voice&#x60; | &#x60;none&#x60;
* @property {boolean} [isEventCanceled &#x3D; false] Indicates if a scheduled event should be sent as an already canceled
* @property {?Array&amp;lt;number&gt;} messageSecret The custom message secret, can be used as an event ID. NOTE: it has to be a unique vector with a length of 32
*/
/** Represents a ScheduledEvent on WhatsApp */
class ScheduledEvent {
/**
* @param {string} name
* @param {Date} startTime
* @param {ScheduledEventSendOptions} options
*/
constructor(name, startTime, options &#x3D; {}) {
/**
* The name of the event
* @type {string}
*/
this.name &#x3D; this._validateInputs(&#x27;name&#x27;, name).trim();
/**
* The start time of the event
* @type {number}
*/
this.startTimeTs &#x3D; Math.floor(startTime.getTime() / 1000);
/**
* The send options for the event
* @type {Object}
*/
this.eventSendOptions &#x3D; {
description: options.description?.trim(),
endTimeTs: options.endTime
? Math.floor(options.endTime.getTime() / 1000)
: null,
location: options.location?.trim(),
callType: this._validateInputs(&#x27;callType&#x27;, options.callType),
isEventCanceled: options.isEventCanceled ?? false,
messageSecret: options.messageSecret,
};
}
/**
* Inner function to validate input values
* @param {string} propName The property name to validate the value of
* @param {string | number} propValue The property value to validate
* @returns {string | number} The property value if a validation succeeded
*/
_validateInputs(propName, propValue) {
if (propName &#x3D;&#x3D;&#x3D; &#x27;name&#x27; &amp;amp;&amp;amp; !propValue) {
throw new (class CreateScheduledEventError extends Error {
constructor(m) {
super(m);
}
})(&#x60;Empty &#x27;${propName}&#x27; parameter value is provided.&#x60;);
}
if (
propName &#x3D;&#x3D;&#x3D; &#x27;callType&#x27; &amp;amp;&amp;amp;
propValue &amp;amp;&amp;amp;
![&#x27;video&#x27;, &#x27;voice&#x27;, &#x27;none&#x27;].includes(propValue)
) {
throw new (class CreateScheduledEventError extends Error {
constructor(m) {
super(m);
}
})(
&#x60;Invalid &#x27;${propName}&#x27; parameter value is provided. Valid values are: &#x27;voice&#x27; | &#x27;video&#x27; | &#x27;none&#x27;.&#x60;,
);
}
return propValue;
}
}
module.exports &#x3D; ScheduledEvent;
</code></pre>
</article>
</div>
</div>
<nav id="jsdoc-toc-nav" role="navigation"></nav>
</div>
</div>
<footer id="jsdoc-footer" class="jsdoc-footer">
<div id="jsdoc-footer-container">
<p>
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc</a> 3.6.11 on April 24, 2026.
</p>
</div>
</footer>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/tree.jquery.js"></script>
<script src="scripts/prettify.js"></script>
<script src="scripts/jsdoc-toc.js"></script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/scrollanchor.js"></script>
</body>
</html>