125 lines
No EOL
4.9 KiB
HTML
125 lines
No EOL
4.9 KiB
HTML
<!doctype html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta name="generator" content="JSDoc 3.6.11">
|
|
<meta charset="utf-8">
|
|
<title>whatsapp-web.js 1.34.5-alpha.1 » 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>5-alpha.<wbr>1</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>'use strict';
|
|
|
|
/**
|
|
* 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: `video` | `voice` | `none`
|
|
* @property {boolean} [isEventCanceled = false] Indicates if a scheduled event should be sent as an already canceled
|
|
* @property {?Array&lt;number>} 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 = {}) {
|
|
/**
|
|
* The name of the event
|
|
* @type {string}
|
|
*/
|
|
this.name = this._validateInputs('name', name).trim();
|
|
|
|
/**
|
|
* The start time of the event
|
|
* @type {number}
|
|
*/
|
|
this.startTimeTs = Math.floor(startTime.getTime() / 1000);
|
|
|
|
/**
|
|
* The send options for the event
|
|
* @type {Object}
|
|
*/
|
|
this.eventSendOptions = {
|
|
description: options.description?.trim(),
|
|
endTimeTs: options.endTime ? Math.floor(options.endTime.getTime() / 1000) : null,
|
|
location: options.location?.trim(),
|
|
callType: this._validateInputs('callType', 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 === 'name' &amp;&amp; !propValue) {
|
|
throw new class CreateScheduledEventError extends Error {
|
|
constructor(m) { super(m); }
|
|
}(`Empty '${propName}' parameter value is provided.`);
|
|
}
|
|
|
|
if (propName === 'callType' &amp;&amp; propValue &amp;&amp; !['video', 'voice', 'none'].includes(propValue)) {
|
|
throw new class CreateScheduledEventError extends Error {
|
|
constructor(m) { super(m); }
|
|
}(`Invalid '${propName}' parameter value is provided. Valid values are: 'voice' | 'video' | 'none'.`);
|
|
}
|
|
|
|
return propValue;
|
|
}
|
|
}
|
|
|
|
module.exports = 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 January 5, 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> |