becca_entities_option.js.html 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Source: becca/entities/option.js</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Source: becca/entities/option.js</h1>
  17. <section>
  18. <article>
  19. <pre class="prettyprint source linenums"><code>"use strict";
  20. const dateUtils = require('../../services/date_utils.js');
  21. const AbstractEntity = require("./abstract_entity.js");
  22. /**
  23. * Option represents name-value pair, either directly configurable by the user or some system property.
  24. */
  25. class Option extends AbstractEntity {
  26. static get entityName() { return "options"; }
  27. static get primaryKeyName() { return "name"; }
  28. static get hashedProperties() { return ["name", "value"]; }
  29. constructor(row) {
  30. super();
  31. /** @type {string} */
  32. this.name = row.name;
  33. /** @type {string} */
  34. this.value = row.value;
  35. /** @type {boolean} */
  36. this.isSynced = !!row.isSynced;
  37. /** @type {string} */
  38. this.utcDateModified = row.utcDateModified;
  39. this.becca.options[this.name] = this;
  40. }
  41. beforeSaving() {
  42. super.beforeSaving();
  43. this.utcDateModified = dateUtils.utcNowDateTime();
  44. }
  45. getPojo() {
  46. return {
  47. name: this.name,
  48. value: this.value,
  49. isSynced: this.isSynced,
  50. utcDateModified: this.utcDateModified,
  51. // utcDateCreated is scheduled for removal so the value does not matter
  52. utcDateCreated: dateUtils.utcNowDateTime()
  53. }
  54. }
  55. }
  56. module.exports = Option;
  57. </code></pre>
  58. </article>
  59. </section>
  60. </div>
  61. <nav>
  62. <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3>
  63. </nav>
  64. <br class="clear">
  65. <footer>
  66. Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a>
  67. </footer>
  68. <script> prettyPrint(); </script>
  69. <script src="scripts/linenumber.js"> </script>
  70. </body>
  71. </html>