UNPKG

dobo

Version:

DBMS for Bajo Framework

3 lines 93.4 kB
<!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Class: DoboAdapter</title><!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124    C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124    c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227    c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6    V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474    c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323    c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848    S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328    c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="light"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div><div class="sidebar-section-children"><a href="DoboAction.html">DoboAction</a></div><div class="sidebar-section-children"><a href="DoboAdapter.html">DoboAdapter</a></div><div class="sidebar-section-children"><a href="DoboConnection.html">DoboConnection</a></div><div class="sidebar-section-children"><a href="DoboFeature.html">DoboFeature</a></div><div class="sidebar-section-children"><a href="DoboModel.html">DoboModel</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Helper.html">Helper</a></div><div class="sidebar-section-children"><a href="module-Helper_Model.html">Helper/Model</a></div><div class="sidebar-section-children"><a href="module-Hook.html">Hook</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-externals"><div>Externals</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="external-Tools.html">Tools</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#actionFactory">actionFactory</a></div><div class="sidebar-section-children"><a href="global.html#adapterFactory">adapterFactory</a></div><div class="sidebar-section-children"><a href="global.html#connectionFactory">connectionFactory</a></div><div class="sidebar-section-children"><a href="global.html#featureFactory">featureFactory</a></div><div class="sidebar-section-children"><a href="global.html#modelFactory">modelFactory</a></div><div class="sidebar-section-children"><a href="global.html#pluginFactory">pluginFactory</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><header><h1 id="DoboAdapter-title" class="has-anchor">DoboAdapter</h1><div class="class-description"><p>DoboAdapter class serves as a base class for all database adapters in the Dobo framework. It provides common functionality for managing models, records, and database operations. Child classes should implement the abstract methods to provide specific database functionality.</p></div></header><article><div class="container-overview"><h2 id="constructor" class="has-anchor">Constructor</h2><h3 class="name has-anchor" id="DoboAdapter"><span class="type-signature"></span>new DoboAdapter<span class="signature">()</span></h3><div class="description"><p>Constructor.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line62">line 62</a></li></ul></dd></div></dl></div><h2 id="Extends" class="subsection-title has-anchor">Extends</h2><ul><li><a href="external-Tools.html">external:Tools</a></li></ul><h2 id="members" class="subsection-title has-anchor">Members</h2><h3 class="name has-anchor" id="idField"><span class="type-signature"></span>idField<span class="type-signature"> :<a href="DoboAdapter.html#.TIdField">DoboAdapter.TIdField</a></span></h3><div class="description"><p>ID field configuration</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type"><a href="DoboAdapter.html#.TIdField">DoboAdapter.<wbr>TIdField</a></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line79">line 79</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="maxChunkSize"><span class="type-signature"></span>maxChunkSize<span class="type-signature"> :number</span></h3><div class="description"><p>Maximum chunk size for bulk operations</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">number</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line108">line 108</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="memory"><span class="type-signature"></span>memory<span class="type-signature"> :boolean</span></h3><div class="description"><p>Indicates whether the adapter uses in-memory storage</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">boolean</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line114">line 114</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="name"><span class="type-signature"></span>name<span class="type-signature"> :string</span></h3><div class="description"><p>Adapter name</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">string</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line73">line 73</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="options"><span class="type-signature"></span>options<span class="type-signature"> :object</span></h3><div class="description"><p>Adapter options</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">object</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line120">line 120</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="support"><span class="type-signature"></span>support<span class="type-signature"> :<a href="DoboAdapter.html#.TSupport">DoboAdapter.TSupport</a></span></h3><div class="description"><p>Support configuration for the adapter</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type"><a href="DoboAdapter.html#.TSupport">DoboAdapter.<wbr>TSupport</a></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line86">line 86</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="useUtc"><span class="type-signature"></span>useUtc<span class="type-signature"> :boolean</span></h3><div class="description"><p>Indicates whether to use UTC for datetime fields</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">boolean</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line102">line 102</a></li></ul></dd></div></dl><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="_attachHook"><span class="type-signature">(async) </span>_attachHook<span class="signature">(name, model, &hellip;args)</span></h3><div class="description"><p>Attaches hooks to the model for various operations. It runs the appropriate hooks before and after the specified operation, allowing for custom behavior to be injected into the model's lifecycle.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="description last"><p>The name of the hook</p></td></tr><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="attributes"></td><td class="description last"><p>The model instance to which the hook is being attached</p></td></tr><tr><td class="name"><code>args</code></td><td class="type"><span class="param-type">any</span></td><td class="attributes">&lt;repeatable><br></td><td class="description last"><p>Additional arguments to be passed to the hook</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line259">line 259</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="_buildModel"><span class="type-signature">(async) </span>_buildModel<span class="signature">(model, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <code>buildModel</code> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line336">line 336</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_bulkCreateRecord"><span class="type-signature">(async) </span>_bulkCreateRecord<span class="signature">(model, bodies, options)</span><span class="type-signature"> &rarr; {Promise.&lt;void>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#bulkCreateRecord">DoboAdapter#bulkCreateRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>bodies</code></td><td class="type"><span class="param-type">Array.&lt;object></span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line480">line 480</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;void></span></dd></dl></div><h3 class="name has-anchor" id="_checkUnique"><span class="type-signature">(async) </span>_checkUnique<span class="signature">(model, body, options)</span><span class="type-signature"> &rarr; {Promise.&lt;void>}</span></h3><div class="description"><p>Checks the uniqueness of fields with a unique index.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance to check</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The data to be checked for uniqueness</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options, including the action being performed</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line281">line 281</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Resolves if unique, throws an error if not</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;void></span></dd></dl></div><h3 class="name has-anchor" id="_clearRecord"><span class="type-signature">(async) </span>_clearRecord<span class="signature">(model, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#clearRecord">DoboAdapter#clearRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line631">line 631</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_countRecord"><span class="type-signature">(async) </span>_countRecord<span class="signature">(model, filter, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#countRecord">DoboAdapter#countRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line718">line 718</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_createAggregate"><span class="type-signature">(async) </span>_createAggregate<span class="signature">(model, filter, params, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#createAggregate">DoboAdapter#createAggregate</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>params</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line744">line 744</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_createHistogram"><span class="type-signature">(async) </span>_createHistogram<span class="signature">(model, filter, params, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#createHistogram">DoboAdapter#createHistogram</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>params</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line787">line 787</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_createRecord"><span class="type-signature">(async) </span>_createRecord<span class="signature">(model, input, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#createRecord">DoboAdapter#createRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>input</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line446">line 446</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_dropModel"><span class="type-signature">(async) </span>_dropModel<span class="signature">(model, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <code>dropModel</code> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line350">line 350</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_findAllRecord"><span class="type-signature">(async) </span>_findAllRecord<span class="signature">(model, filter, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Finds all records for the given model based on the provided filter. This method will only run if child adapter does not implement DoboAdapter#findAllRecord.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the records are being found</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The filter criteria for finding records</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record finding</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line685">line 685</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record finding</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_findRecord"><span class="type-signature">(async) </span>_findRecord<span class="signature">(model, filter, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#findRecord">DoboAdapter#findRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line651">line 651</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_getRecord"><span class="type-signature">(async) </span>_getRecord<span class="signature">(model, id, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#getRecord">DoboAdapter#getRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line509">line 509</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_getReturningFields"><span class="type-signature"></span>_getReturningFields<span class="signature">(model, options)</span><span class="type-signature"> &rarr; {Array.&lt;string>}</span></h3><div class="description"><p>Get returning fields for a model based on the provided options. If the adapter supports returning fields, it will return the specified fields or all model properties. It ensures that the ID field is always included in the returned fields.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which to get the returning fields</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Options that may include the fields to return</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line239">line 239</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Array of field names to be returned</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Array.&lt;string></span></dd></dl></div><h3 class="name has-anchor" id="_modelExists"><span class="type-signature">(async) </span>_modelExists<span class="signature">(model, options)</span><span class="type-signature"> &rarr; {Promise.&lt;boolean>}</span></h3><div class="description"><p>Wrapper for the <code>modelExists</code> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line322">line 322</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;boolean></span></dd></dl></div><h3 class="name has-anchor" id="_prepBodyForCreate"><span class="type-signature">(async) </span>_prepBodyForCreate<span class="signature">(model, body, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Prepares the body of a record for creation by populating default values for properties that are not set. It handles various types of default values, including functions, special strings (like 'now', 'uuid', etc.), and static values.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the body is being prepared</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The data to be prepared for creation</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect the preparation</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line366">line 366</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The prepared body with default values populated</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_prepIdForCreate"><span class="type-signature">(async) </span>_prepIdForCreate<span class="signature">(model, body, options)</span><span class="type-signature"> &rarr; {Promise.&lt;void>}</span></h3><div class="description"><p>Prepares the ID for a record before creation. It generates an ID if it is not set in the body.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the ID is being prepared</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The data containing the ID</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect ID generation</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line414">line 414</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Resolves when the ID has been prepared</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;void></span></dd></dl></div><h3 class="name has-anchor" id="_removeRecord"><span class="type-signature">(async) </span>_removeRecord<span class="signature">(model, id, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#removeRecord">DoboAdapter#removeRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line604">line 604</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_updateRecord"><span class="type-signature">(async) </span>_updateRecord<span class="signature">(model, id, input, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Wrapper for the <a href="DoboAdapter.html#updateRecord">DoboAdapter#updateRecord</a> method, called internally by <code>model</code> to make sure all adapter hooks are executed accordingly, and all inputs and outputs are sanitized.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="description last"></td></tr><tr><td class="name"><code>input</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line532">line 532</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="_upsertRecord"><span class="type-signature">(async) </span>_upsertRecord<span class="signature">(model, input, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Upserts a record for the given model. This method will only run if child adapter does not implement DoboAdapter#upsertRecord.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being upserted</p></td></tr><tr><td class="name"><code>input</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The input data for the upsert</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record upserting</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line568">line 568</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record upsert</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="buildModel"><span class="type-signature">(async) </span>buildModel<span class="signature">(model, options)</span></h3><div class="description"><p>Builds the model in the database.</p><p>Must be implemented by child classes to provide specific database functionality for model building, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being built</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect model building</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line850">line 850</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="bulkCreateRecord"><span class="type-signature">(async) </span>bulkCreateRecord<span class="signature">(model, bodies, options)</span><span class="type-signature"> &rarr; {Promise.&lt;void>}</span></h3><div class="description"><p>Bulk creates records for the given model.</p><p>Must be implemented by child classes to provide specific database functionality for bulk record creation, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the records are being created</p></td></tr><tr><td class="name"><code>bodies</code></td><td class="type"><span class="param-type">Array.&lt;object></span></td><td class="description last"><p>The array of input data for the new records</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record creation</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line968">line 968</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Resolves when the records have been created</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;void></span></dd></dl></div><h3 class="name has-anchor" id="clearRecord"><span class="type-signature">(async) </span>clearRecord<span class="signature">(model, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Clears all records for the given model.</p><p>Must be implemented by child classes to provide specific database functionality for record clearing, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the records are being cleared</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record clearing</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line938">line 938</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record clearing</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="connect"><span class="type-signature">(async) </span>connect<span class="signature">(connection, noRebuild)</span><span class="type-signature"> &rarr; {Promise.&lt;void>}</span></h3><div class="description"><p>Connects to the database using the provided connection parameters.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>connection</code></td><td class="type"><span class="param-type">*</span></td><td class="description last"><p>The connection parameters for the database</p></td></tr><tr><td class="name"><code>noRebuild</code></td><td class="type"><span class="param-type">*</span></td><td class="description last"><p>Flag indicating whether to skip rebuilding the database schema</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line825">line 825</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Resolves when the connection is established</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;void></span></dd></dl></div><h3 class="name has-anchor" id="countRecord"><span class="type-signature">(async) </span>countRecord<span class="signature">(model, filter, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Counts the records for the given model based on the provided filter.</p><p>Must be implemented by child classes to provide specific database functionality for record counting, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the records are being counted</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The filter criteria for counting records</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record counting</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line983">line 983</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record counting</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="createAggregate"><span class="type-signature">(async) </span>createAggregate<span class="signature">(model, filter, params, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Creates an aggregate for the given model based on the provided filter and parameters.</p><p>Must be implemented by child classes to provide specific database functionality for aggregate creation, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the aggregate is being created</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The filter criteria for creating the aggregate</p></td></tr><tr><td class="name"><code>params</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The parameters for the aggregate creation</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect aggregate creation</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line999">line 999</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the aggregate creation</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="createHistogram"><span class="type-signature">(async) </span>createHistogram<span class="signature">(model, filter, params, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Creates a histogram for the given model based on the provided filter and parameters.</p><p>Must be implemented by child classes to provide specific database functionality for histogram creation, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the histogram is being created</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The filter criteria for creating the histogram</p></td></tr><tr><td class="name"><code>params</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The parameters for the histogram creation</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect histogram creation</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line1015">line 1015</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the histogram creation</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="createRecord"><span class="type-signature">(async) </span>createRecord<span class="signature">(model, input, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Creates a new record for the given model.</p><p>Must be implemented by child classes to provide specific database functionality for record creation, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being created</p></td></tr><tr><td class="name"><code>input</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The input data for the new record</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record creation</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line878">line 878</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record creation</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="dispose"><span class="type-signature">(async) </span>dispose<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;void>}</span></h3><div class="description"><p>Disposes of the adapter, performing any necessary cleanup operations.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line1038">line 1038</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Resolves when the adapter has been disposed</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;void></span></dd></dl></div><h3 class="name has-anchor" id="dropModel"><span class="type-signature">(async) </span>dropModel<span class="signature">(model, options)</span></h3><div class="description"><p>Drops the model from the database.</p><p>Must be implemented by child classes to provide specific database functionality for dropping a model, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being dropped</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record dropping</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line863">line 863</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="findRecord"><span class="type-signature">(async) </span>findRecord<span class="signature">(model, filter, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Finds records for the given model based on the provided filter.</p><p>Must be implemented by child classes to provide specific database functionality for record finding, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the records are being found</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The filter criteria for finding records</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record finding</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line953">line 953</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record finding</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="getRealFields"><span class="type-signature"></span>getRealFields<span class="signature">(model)</span><span class="type-signature"> &rarr; {Array.&lt;string>}</span></h3><div class="description"><p>Utility method to get the real fields of a model, excluding virtual fields. This is useful for operations that require only the actual stored properties of a model.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type">*</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line217">line 217</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Array of real field names</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Array.&lt;string></span></dd></dl></div><h3 class="name has-anchor" id="getRecord"><span class="type-signature">(async) </span>getRecord<span class="signature">(model, id, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Retrieves a record for the given model by its ID.</p><p>Must be implemented by child classes to provide specific database functionality for record retrieval, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being retrieved</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="description last"><p>The ID of the record to retrieve</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record retrieval</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line893">line 893</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record retrieval</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="getVirtualFields"><span class="type-signature"></span>getVirtualFields<span class="signature">(model)</span><span class="type-signature"> &rarr; {Array.&lt;string>}</span></h3><div class="description"><p>Utility method to get the virtual fields of a model. This is useful for operations that need to work with computed or derived properties.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line227">line 227</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Array of virtual field names</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Array.&lt;string></span></dd></dl></div><h3 class="name has-anchor" id="modelExists"><span class="type-signature">(async) </span>modelExists<span class="signature">(model, options)</span></h3><div class="description"><p>Checks if the model exists in the database.</p><p>Must be implemented by child classes to provide specific database functionality for model existence checking, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance to check for existence</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect the existence check</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line837">line 837</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="removeRecord"><span class="type-signature">(async) </span>removeRecord<span class="signature">(model, id, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Removes a record for the given model by its ID.</p><p>Must be implemented by child classes to provide specific database functionality for record removal, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being removed</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="description last"><p>The ID of the record to remove</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record removal</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line924">line 924</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record removal</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h3 class="name has-anchor" id="sanitizeBody"><span class="type-signature"></span>sanitizeBody<span class="signature">(model, body, partial<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {object}</span></h3><div class="description"><p>Sanitizes the body of a record before creating or updating it. It ensures that all required fields are present and have valid values, and converts data types as necessary.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>The model instance for which the body is being sanitized</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>The body of the record to be sanitized</p></td></tr><tr><td class="name"><code>partial</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">false</td><td class="description last"><p>Indicates whether to perform a partial update</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line143">line 143</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Sanitized body</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">object</span></dd></dl></div><h3 class="name has-anchor" id="sanitizeConnection"><span class="type-signature">(async) </span>sanitizeConnection<span class="signature">(conn)</span><span class="type-signature"> &rarr; {Promise.&lt;void>}</span></h3><div class="description"><p>Sanitize connection object</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>conn</code></td><td class="type"><span class="param-type">Object</span></td><td class="description last"><p>Connection object</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line130">line 130</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;void></span></dd></dl></div><h3 class="name has-anchor" id="sanitizeRecord"><span class="type-signature"></span>sanitizeRecord<span class="signature">(model, record)</span><span class="type-signature"> &rarr; {object}</span></h3><div class="description"><p>Sanitizes a record retrieved from the database, converting data types as necessary and ensuring that the record conforms to the model's schema.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being sanitized</p></td></tr><tr><td class="name"><code>record</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The record retrieved from the database</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line181">line 181</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>Sanitized record</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">object</span></dd></dl></div><h3 class="name has-anchor" id="transaction"><span class="type-signature">(async) </span>transaction<span class="signature">(model, handler, &hellip;args)</span></h3><div class="description"><p>Executes a transaction for the given model.</p><p>Must be implemented by child classes to provide specific database functionality for transactions, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="attributes"></td><td class="description last"><p>The model instance for which the transaction is being executed</p></td></tr><tr><td class="name"><code>handler</code></td><td class="type"><span class="param-type">function</span></td><td class="attributes"></td><td class="description last"><p>The transaction handler function</p></td></tr><tr><td class="name"><code>args</code></td><td class="type"><span class="param-type">any</span></td><td class="attributes">&lt;repeatable><br></td><td class="description last"><p>Additional arguments for the transaction handler</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line1029">line 1029</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="updateRecord"><span class="type-signature">(async) </span>updateRecord<span class="signature">(model, id, input, options)</span><span class="type-signature"> &rarr; {Promise.&lt;object>}</span></h3><div class="description"><p>Updates a record for the given model by its ID.</p><p>Must be implemented by child classes to provide specific database functionality for record updating, or throw an error if the operation is not supported by the adapter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>model</code></td><td class="type"><span class="param-type"><a href="DoboModel.html">DoboModel</a></span></td><td class="description last"><p>The model instance for which the record is being updated</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="description last"><p>The ID of the record to update</p></td></tr><tr><td class="name"><code>input</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The input data for the update</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>Additional options that may affect record updating</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line909">line 909</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><ul><li>The result of the record update</li></ul></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Promise.&lt;object></span></dd></dl></div><h2 id="type-definitions" class="subsection-title has-anchor">Type Definitions</h2><h3 class="name has-anchor" id=".TIdField">TIdField</h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes">&lt;optional><br></td><td class="default">'_id'</td><td class="description last"><p>The name of the ID field.</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes">&lt;optional><br></td><td class="default">'string'</td><td class="description last"><p>The data type of the ID field.</p></td></tr><tr><td class="name"><code>maxLength</code></td><td class="type"><span class="param-type">number</span></td><td class="attributes">&lt;optional><br></td><td class="default">50</td><td class="description last"><p>The maximum length of the ID field.</p></td></tr><tr><td class="name"><code>required</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">true</td><td class="description last"><p>Indicates if the ID field is required.</p></td></tr><tr><td class="name"><code>index</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes">&lt;optional><br></td><td class="default">'primary'</td><td class="description last"><p>The index type of the ID field.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line18">line 18</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".TSupport">TSupport</h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>propType</code></td><td class="type"><span class="param-type">object</span></td><td class="attributes">&lt;optional><br></td><td class="default">{}</td><td class="description last"><p>An object indicating support for various property types.</p><h6>Properties</h6><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>object</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">false</td><td class="description last"><p>Indicates if object property type is supported.</p></td></tr><tr><td class="name"><code>array</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">false</td><td class="description last"><p>Indicates if array property type is supported.</p></td></tr><tr><td class="name"><code>datetime</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">true</td><td class="description last"><p>Indicates if datetime property type is supported.</p></td></tr></tbody></table></div></td></tr><tr><td class="name"><code>search</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">false</td><td class="description last"><p>Indicates if search functionality is supported.</p></td></tr><tr><td class="name"><code>uniqueIndex</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">false</td><td class="description last"><p>Indicates if unique index functionality is supported.</p></td></tr><tr><td class="name"><code>nullableField</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">true</td><td class="description last"><p>Indicates if nullable fields are supported.</p></td></tr><tr><td class="name"><code>transaction</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes">&lt;optional><br></td><td class="default">false</td><td class="description last"><p>Indicates if transaction functionality is supported.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_adapter.js.html">lib/factory/adapter.js</a>, <a href="lib_factory_adapter.js.html#line29">line 29</a></li></ul></dd></div></dl></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div><div class="sidebar-section-children"><a href="DoboAction.html">DoboAction</a></div><div class="sidebar-section-children"><a href="DoboAdapter.html">DoboAdapter</a></div><div class="sidebar-section-children"><a href="DoboConnection.html">DoboConnection</a></div><div class="sidebar-section-children"><a href="DoboFeature.html">DoboFeature</a></div><div class="sidebar-section-children"><a href="DoboModel.html">DoboModel</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Helper.html">Helper</a></div><div class="sidebar-section-children"><a href="module-Helper_Model.html">Helper/Model</a></div><div class="sidebar-section-children"><a href="module-Hook.html">Hook</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-externals"><div>Externals</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="external-Tools.html">Tools</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#actionFactory">actionFactory</a></div><div class="sidebar-section-children"><a href="global.html#adapterFactory">adapterFactory</a></div><div class="sidebar-section-children"><a href="global.html#connectionFactory">connectionFactory</a></div><div class="sidebar-section-children"><a href="global.html#featureFactory">featureFactory</a></div><div class="sidebar-section-children"><a href="global.html#modelFactory">modelFactory</a></div><div class="sidebar-section-children"><a href="global.html#pluginFactory">pluginFactory</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>