UNPKG

isatdatapro-microservices

Version:

A library for creating microservices to access Inmarsat's IsatData Pro satellite IoT system

1,565 lines (720 loc) 29.8 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Class: DatabaseContext</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <script src="scripts/jquery.min.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css"> <link type="text/css" rel="stylesheet" href="styles/jaguar.css"> <script> var config = {"monospaceLinks":false,"cleverLinks":true,"default":{}}; </script> </head> <body> <div id="wrap" class="clearfix"> <div class="navigation"> <h3 class="applicationName"><a href="index.html"></a></h3> <div class="search"> <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations"> </div> <ul class="list"> <li class="item" data-name="ApiCallLog"> <span class="title"> <a href="ApiCallLog.html">ApiCallLog</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="Field"> <span class="title"> <a href="Field.html">Field</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="Mailbox"> <span class="title"> <a href="Mailbox.html">Mailbox</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> <span class="subtitle">Methods</span> <li data-name="Mailbox#passwordGet"><a href="Mailbox.html#passwordGet">passwordGet</a></li> <li data-name="Mailbox#passwordSet"><a href="Mailbox.html#passwordSet">passwordSet</a></li> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="Message"> <span class="title"> <a href="Message.html">Message</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> <span class="subtitle">Methods</span> <li data-name="Message#getCodecMessageId"><a href="Message.html#getCodecMessageId">getCodecMessageId</a></li> <li data-name="Message#getCodecServiceId"><a href="Message.html#getCodecServiceId">getCodecServiceId</a></li> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="MessageForward"> <span class="title"> <a href="MessageForward.html">MessageForward</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> <span class="subtitle">Methods</span> <li data-name="MessageForward#getStateName"><a href="MessageForward.html#getStateName">getStateName</a></li> <li data-name="MessageForward#getStateReason"><a href="MessageForward.html#getStateReason">getStateReason</a></li> <li data-name="MessageForward#submit"><a href="MessageForward.html#submit">submit</a></li> <li data-name="MessageForward#updateStatus"><a href="MessageForward.html#updateStatus">updateStatus</a></li> <li data-name="MessageForward#wakeupPeriodEnum"><a href="MessageForward.html#wakeupPeriodEnum">wakeupPeriodEnum</a></li> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="MessageReturn"> <span class="title"> <a href="MessageReturn.html">MessageReturn</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="Mobile"> <span class="title"> <a href="Mobile.html">Mobile</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="module:repositories/azureCosmosRepository~DatabaseContext"> <span class="title"> <a href="module-repositories_azureCosmosRepository-DatabaseContext.html">module:repositories/azureCosmosRepository~DatabaseContext</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> <span class="subtitle">Methods</span> <li data-name="module:repositories/azureCosmosRepository~DatabaseContext#close"><a href="module-repositories_azureCosmosRepository-DatabaseContext.html#close">close</a></li> <li data-name="module:repositories/azureCosmosRepository~DatabaseContext#delete"><a href="module-repositories_azureCosmosRepository-DatabaseContext.html#delete">delete</a></li> <li data-name="module:repositories/azureCosmosRepository~DatabaseContext#find"><a href="module-repositories_azureCosmosRepository-DatabaseContext.html#find">find</a></li> <li data-name="module:repositories/azureCosmosRepository~DatabaseContext#initialize"><a href="module-repositories_azureCosmosRepository-DatabaseContext.html#initialize">initialize</a></li> <li data-name="module:repositories/azureCosmosRepository~DatabaseContext#upsert"><a href="module-repositories_azureCosmosRepository-DatabaseContext.html#upsert">upsert</a></li> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="module:repositories/mysqlRepository~DatabaseContext"> <span class="title"> <a href="module-repositories_mysqlRepository-DatabaseContext.html">module:repositories/mysqlRepository~DatabaseContext</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> <span class="subtitle">Methods</span> <li data-name="module:repositories/mysqlRepository~DatabaseContext#close"><a href="module-repositories_mysqlRepository-DatabaseContext.html#close">close</a></li> <li data-name="module:repositories/mysqlRepository~DatabaseContext#delete"><a href="module-repositories_mysqlRepository-DatabaseContext.html#delete">delete</a></li> <li data-name="module:repositories/mysqlRepository~DatabaseContext#find"><a href="module-repositories_mysqlRepository-DatabaseContext.html#find">find</a></li> <li data-name="module:repositories/mysqlRepository~DatabaseContext#initialize"><a href="module-repositories_mysqlRepository-DatabaseContext.html#initialize">initialize</a></li> <li data-name="module:repositories/mysqlRepository~DatabaseContext#upsert"><a href="module-repositories_mysqlRepository-DatabaseContext.html#upsert">upsert</a></li> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="Payload"> <span class="title"> <a href="Payload.html">Payload</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> <span class="subtitle">Methods</span> <li data-name="Payload#addField"><a href="Payload.html#addField">addField</a></li> </ul> <ul class="events itemMembers"> </ul> </li> <li class="item" data-name="SatelliteGateway"> <span class="title"> <a href="SatelliteGateway.html">SatelliteGateway</a> </span> <ul class="members itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="typedefs itemMembers"> </ul> <ul class="methods itemMembers"> </ul> <ul class="events itemMembers"> </ul> </li> </ul> </div> <div class="main"> <h1 class="page-title" data-filename="module-repositories_mysqlRepository-DatabaseContext.html">Class: DatabaseContext</h1> <section> <header> <h2> <span class="ancestors"><a href="module-repositories_mysqlRepository.html">repositories/mysqlRepository</a>~</span> DatabaseContext </h2> </header> <article> <div class="container-overview"> <dt> <div class="nameContainer"> <h4 class="name" id="DatabaseContext"> new DatabaseContext<span class="signature">()</span> </h4> <div class="tag-source"> infra/database/repositories/mysqlRepository.js, line 97 </div> </div> </dt> <dd> <div class="description"> <p>Creates a MySQL connection. Uses environment variables:</p> <ul> <li><code>DB_TYPE=mysql</code></li> <li><code>MYSQL_DB_HOST=</code> the host name e.g. localhost</li> <li><code>MYSQL_DB_USER=</code> the user name e.g. root</li> <li><code>MYSQL_DB_PASS=</code> the password for the user</li> <li><code>MYSQL_DB_NAME=</code> the name of the database e.g. IsatDataPro</li> </ul> </div> <dl class="details"> </dl> </dd> </div> <h3 class="subsection-title">Methods</h3> <dl> <dt> <div class="nameContainer"> <h4 class="name" id="close"> close<span class="signature">()</span> </h4> <div class="tag-source"> infra/database/repositories/mysqlRepository.js, line 408 </div> </div> </dt> <dd> <div class="description"> <p>Closes the database connection</p> </div> <dl class="details"> </dl> </dd> <dt> <div class="nameContainer"> <h4 class="name" id="delete"> delete<span class="signature">(item)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span> </h4> <div class="tag-source"> infra/database/repositories/mysqlRepository.js, line 354 </div> </div> </dt> <dd> <div class="description"> <p>Deletes an item from the database</p> </div> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>item</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"> <p>The category in the collection</p></td> </tr> </tbody> </table> <dl class="details"> </dl> <h5>Throws:</h5> <ul> <li> <dl> <dt> <div class="param-desc"> <p>if database not initialized</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> <li> <dl> <dt> <div class="param-desc"> <p>if item.category is invalid</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> </ul> <h5>Returns:</h5> <table class="params"> <thead> <tr> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="type"> boolean </td> <td class="description last">result</td> </tr> </tbody> </table> </dd> <dt> <div class="nameContainer"> <h4 class="name" id="find"> find<span class="signature">(category, <span class="optional">include</span>, <span class="optional">exclude</span>, <span class="optional">options</span>, <span class="optional">older</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;Object>}</span> </h4> <div class="tag-source"> infra/database/repositories/mysqlRepository.js, line 188 </div> </div> </dt> <dd> <div class="description"> <p>Returns database entries matching a criteria</p> </div> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>category</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"> <p>the model category e.g. <code>message_return</code></p></td> </tr> <tr> <td class="name"><code>include</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"> <span class="optional">optional</span> <p>key/value pairs for equality filtering</p></td> </tr> <tr> <td class="name"><code>exclude</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"> <span class="optional">optional</span> <p>key/value pairs for inequality filtering</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"> <span class="optional">optional</span> <p>e.g. <code>{ limit: 1, desc: 'dbTimestamp' }</code></p> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>limit</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="description last"> <span class="optional">optional</span> <p>Maximum items to return</p></td> </tr> <tr> <td class="name"><code>desc</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"> <span class="optional">optional</span> <p>Property to sort descending (e.g. _ts timestamp)</p></td> </tr> <tr> <td class="name"><code>asc</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"> <span class="optional">optional</span> <p>Property to sort descending (e.g. _ts timestamp)</p></td> </tr> </tbody> </table> </td> </tr> <tr> <td class="name"><code>older</code></td> <td class="type"> <span class="param-type">Date</span> </td> <td class="description last"> <span class="optional">optional</span> <p>Searches for records older than the Date</p></td> </tr> </tbody> </table> <dl class="details"> </dl> <h5>Throws:</h5> <ul> <li> <dl> <dt> <div class="param-desc"> <p>if database not initialized</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> <li> <dl> <dt> <div class="param-desc"> <p>if category is invalid</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> </ul> <h5>Returns:</h5> <table class="params"> <thead> <tr> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="type"> Array.&lt;Object> </td> <td class="description last">a list of row objects matching the criteria</td> </tr> </tbody> </table> </dd> <dt> <div class="nameContainer"> <h4 class="name" id="initialize"> initialize<span class="signature">()</span> </h4> <div class="tag-source"> infra/database/repositories/mysqlRepository.js, line 113 </div> </div> </dt> <dd> <div class="description"> <p>Initializes the MySQL database if required</p> </div> <dl class="details"> </dl> </dd> <dt> <div class="nameContainer"> <h4 class="name" id="upsert"> upsert<span class="signature">(item, <span class="optional">filterOn</span>, <span class="optional">newerThan</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Object}</span> </h4> <div class="tag-source"> infra/database/repositories/mysqlRepository.js, line 265 </div> </div> </dt> <dd> <div class="description"> <p>Updates an existing entity in the database or creates a new one. Null and undefined values are not pushed in an update. If the item includes a .newest prototype property it will discard update if older than that property in the database entity.</p> </div> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>item</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"> <p>The item to upsert</p></td> </tr> <tr> <td class="name"><code>filterOn</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"> <span class="optional">optional</span> <p>Optional filter on properties defining &quot;exists&quot;</p></td> </tr> <tr> <td class="name"><code>newerThan</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"> <span class="optional">optional</span> <p>Optional filter on properties involving timestamp</p></td> </tr> </tbody> </table> <dl class="details"> </dl> <h5>Throws:</h5> <ul> <li> <dl> <dt> <div class="param-desc"> <p>if database not initialized</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> <li> <dl> <dt> <div class="param-desc"> <p>if item.category is invalid</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> <li> <dl> <dt> <div class="param-desc"> <p>if filterOn is not an Object</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> <li> <dl> <dt> <div class="param-desc"> <p>if multiple matching entries found in database/table</p> </div> </dt> <dt> <dl> <dt> Type </dt> <dd> <span class="param-type">Error</span> </dd> </dl> </dt> </dl> </li> </ul> <h5>Returns:</h5> <table class="params"> <thead> <tr> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="type"> Object </td> <td class="description last"></td> </tr> </tbody> </table> </dd> </dl> </article> </section> <footer> Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.4</a> on Sat Oct 24 2020 14:53:36 GMT-0400 (Eastern Daylight Time) </footer> </div> </div> <script>prettyPrint();</script> <script src="scripts/jaguar.js"></script> </body> </html>