UNPKG

fluro

Version:

Promise based HTTP Fluro client for the browser and node.js

1,648 lines (459 loc) 26.1 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>FluroUtils - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.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.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav > <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="FluroAccess.html">FluroAccess</a><ul class='methods'><li data-type='method'><a href="FluroAccess.html#.addEventListener">addEventListener</a></li><li data-type='method'><a href="FluroAccess.html#.can">can</a></li><li data-type='method'><a href="FluroAccess.html#.canDeleteItem">canDeleteItem</a></li><li data-type='method'><a href="FluroAccess.html#.canEditItem">canEditItem</a></li><li data-type='method'><a href="FluroAccess.html#.canViewItem">canViewItem</a></li><li data-type='method'><a href="FluroAccess.html#.has">has</a></li><li data-type='method'><a href="FluroAccess.html#.isAuthor">isAuthor</a></li><li data-type='method'><a href="FluroAccess.html#.removeAllListeners">removeAllListeners</a></li><li data-type='method'><a href="FluroAccess.html#.removeEventListener">removeEventListener</a></li><li data-type='method'><a href="FluroAccess.html#.retrieveActionableRealms">retrieveActionableRealms</a></li><li data-type='method'><a href="FluroAccess.html#.retrieveCurrentSession">retrieveCurrentSession</a></li><li data-type='method'><a href="FluroAccess.html#.setDefaultApplication">setDefaultApplication</a></li></ul></li><li><a href="FluroAPI.html">FluroAPI</a><ul class='methods'><li data-type='method'><a href="FluroAPI.html#.delete">delete</a></li><li data-type='method'><a href="FluroAPI.html#.get">get</a></li><li data-type='method'><a href="FluroAPI.html#.post">post</a></li><li data-type='method'><a href="FluroAPI.html#.put">put</a></li></ul></li><li><a href="FluroAsset.html">FluroAsset</a><ul class='methods'><li data-type='method'><a href="FluroAsset.html#.avatarUrl">avatarUrl</a></li><li data-type='method'><a href="FluroAsset.html#.downloadUrl">downloadUrl</a></li><li data-type='method'><a href="FluroAsset.html#.filesize">filesize</a></li><li data-type='method'><a href="FluroAsset.html#.getUrl">getUrl</a></li><li data-type='method'><a href="FluroAsset.html#.imageUrl">imageUrl</a></li><li data-type='method'><a href="FluroAsset.html#.playerUrl">playerUrl</a></li><li data-type='method'><a href="FluroAsset.html#.posterUrl">posterUrl</a></li></ul></li><li><a href="FluroAuth.html">FluroAuth</a><ul class='methods'><li data-type='method'><a href="FluroAuth.html#.addEventListener">addEventListener</a></li><li data-type='method'><a href="FluroAuth.html#.changeAccount">changeAccount</a></li><li data-type='method'><a href="FluroAuth.html#.getCurrentToken">getCurrentToken</a></li><li data-type='method'><a href="FluroAuth.html#.getCurrentUser">getCurrentUser</a></li><li data-type='method'><a href="FluroAuth.html#.login">login</a></li><li data-type='method'><a href="FluroAuth.html#.logout">logout</a></li><li data-type='method'><a href="FluroAuth.html#.refreshAccessToken">refreshAccessToken</a></li><li data-type='method'><a href="FluroAuth.html#.removeAllListeners">removeAllListeners</a></li><li data-type='method'><a href="FluroAuth.html#.removeEventListener">removeEventListener</a></li><li data-type='method'><a href="FluroAuth.html#.retrieveUserFromResetToken">retrieveUserFromResetToken</a></li><li data-type='method'><a href="FluroAuth.html#.sendResetPasswordRequest">sendResetPasswordRequest</a></li><li data-type='method'><a href="FluroAuth.html#.set">set</a></li><li data-type='method'><a href="FluroAuth.html#.signup">signup</a></li><li data-type='method'><a href="FluroAuth.html#.sync">sync</a></li><li data-type='method'><a href="FluroAuth.html#.updateUserWithToken">updateUserWithToken</a></li></ul></li><li><a href="FluroCache.html">FluroCache</a><ul class='methods'><li data-type='method'><a href="FluroCache.html#.get">get</a></li><li data-type='method'><a href="FluroCache.html#.reset">reset</a></li></ul></li><li><a href="FluroContent.html">FluroContent</a><ul class='methods'><li data-type='method'><a href="FluroContent.html#.external">external</a></li><li data-type='method'><a href="FluroContent.html#.form">form</a></li><li data-type='method'><a href="FluroContent.html#.get">get</a></li><li data-type='method'><a href="FluroContent.html#.keys">keys</a></li><li data-type='method'><a href="FluroContent.html#.query">query</a></li><li data-type='method'><a href="FluroContent.html#.related">related</a></li><li data-type='method'><a href="FluroContent.html#.retrieve">retrieve</a></li><li data-type='method'><a href="FluroContent.html#.slug">slug</a></li><li data-type='method'><a href="FluroContent.html#.submitInteraction">submitInteraction</a></li><li data-type='method'><a href="FluroContent.html#.submitPost">submitPost</a></li><li data-type='method'><a href="FluroContent.html#.thread">thread</a></li><li data-type='method'><a href="FluroContent.html#.values">values</a></li></ul></li><li><a href="FluroCore.html">FluroCore</a></li><li><a href="FluroDate.html">FluroDate</a><ul class='methods'><li data-type='method'><a href="FluroDate.html#.dateFromID">dateFromID</a></li><li data-type='method'><a href="FluroDate.html#.formatDate">formatDate</a></li><li data-type='method'><a href="FluroDate.html#.isMultiDayEvent">isMultiDayEvent</a></li><li data-type='method'><a href="FluroDate.html#.localDate">localDate</a></li><li data-type='method'><a href="FluroDate.html#.readableEventDate">readableEventDate</a></li><li data-type='method'><a href="FluroDate.html#.readableEventTime">readableEventTime</a></li><li data-type='method'><a href="FluroDate.html#.timeago">timeago</a></li><li data-type='method'><a href="FluroDate.html#.timezones">timezones</a></li></ul></li><li><a href="FluroTypes.html">FluroTypes</a><ul class='methods'><li data-type='method'><a href="FluroTypes.html#.all">all</a></li><li data-type='method'><a href="FluroTypes.html#.get">get</a></li><li data-type='method'><a href="FluroTypes.html#.readable">readable</a></li><li data-type='method'><a href="FluroTypes.html#.reloadTerminology">reloadTerminology</a></li><li data-type='method'><a href="FluroTypes.html#.retrieve">retrieve</a></li></ul></li><li><a href="FluroUtils.html">FluroUtils</a><ul class='methods'><li data-type='method'><a href="FluroUtils.html#.arrayIDs">arrayIDs</a></li><li data-type='method'><a href="FluroUtils.html#.comma">comma</a></li><li data-type='method'><a href="FluroUtils.html#.errorMessage">errorMessage</a></li><li data-type='method'><a href="FluroUtils.html#.getDefaultValueForField">getDefaultValueForField</a></li><li data-type='method'><a href="FluroUtils.html#.getStringID">getStringID</a></li><li data-type='method'><a href="FluroUtils.html#.guid">guid</a></li><li data-type='method'><a href="FluroUtils.html#.hash">hash</a></li><li data-type='method'><a href="FluroUtils.html#.mapParameters">mapParameters</a></li><li data-type='method'><a href="FluroUtils.html#.matchInArray">matchInArray</a></li></ul></li></ul> </nav> <div id="main"> <h1 class="page-title">FluroUtils</h1> <section> <header> <h2> FluroUtils </h2> <div class="class-description">A static service that provides useful helper functions and tools for other Fluro services</div> </header> <article> <h3 class="subsection-title">Methods</h3> <h4 class="name" id=".arrayIDs"><span class="type-signature">(static) </span>arrayIDs<span class="signature">(array, asObjectID)</span><span class="type-signature"> &rarr; {Array}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line356">line 356</a> </li></ul></dd> </dl> <div class="description"> Cleans and maps an array of objects to an array of IDs </div> <h5>Example</h5> <pre class="prettyprint"><code>//Returns ['5cb3d8b3a2219970e6f86927', '5cb3d8b3a2219970e6f86927', '5cb3d8b3a2219970e6f86927'] FluroUtils.arrayIDs([{_id:'5cb3d8b3a2219970e6f86927'}, {_id:'5cb3d8b3a2219970e6f86927'}, null, '5cb3d8b3a2219970e6f86927'])</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>array</code></td> <td class="type"> <span class="param-type">Array</span> </td> <td class="description last">An array of objects or object ids</td> </tr> <tr> <td class="name"><code>asObjectID</code></td> <td class="type"> <span class="param-type">Boolean</span> </td> <td class="description last">Whether or not to map the ids as Mongo ObjectIds</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> An array of Ids </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Array</span> </dd> </dl> <h4 class="name" id=".comma"><span class="type-signature">(static) </span>comma<span class="signature">(array, path)</span><span class="type-signature"> &rarr; {String}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line264">line 264</a> </li></ul></dd> </dl> <div class="description"> A helpful class that can take an array of values and return them as a comma seperated string, If the values are objects, then a property to use as the string representation can be specified </div> <h5>Example</h5> <pre class="prettyprint"><code>//Returns 'cat, dog, bird' FluroUtils.comma(['cat', 'dog', 'bird']); //Returns 'cat, dog, bird' FluroUtils.comma([{title:'cat'}, {title:'dog'}, {title:'bird'}], 'title');</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>array</code></td> <td class="type"> <span class="param-type">Array</span> </td> <td class="description last">The array of values to translate</td> </tr> <tr> <td class="name"><code>path</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">An optional property key to use for each value</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> The resulting comma seperated string </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">String</span> </dd> </dl> <h4 class="name" id=".errorMessage"><span class="type-signature">(static) </span>errorMessage<span class="signature">(error)</span><span class="type-signature"> &rarr; {String}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line381">line 381</a> </li></ul></dd> </dl> <div class="description"> Helper function for retrieving a human readable error message from server error response objects </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>error</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">The error object to translate</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> The resulting human readable error message </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">String</span> </dd> </dl> <h4 class="name" id=".getDefaultValueForField"><span class="type-signature">(static) </span>getDefaultValueForField<span class="signature">()</span><span class="type-signature"> &rarr; {String|Number|Object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line88">line 88</a> </li></ul></dd> </dl> <div class="description"> A helper function to extract a default value from a fluro field definition </div> <h5>Returns:</h5> <div class="param-desc"> The default value </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">String</span> | <span class="param-type">Number</span> | <span class="param-type">Object</span> </dd> </dl> <h4 class="name" id=".getStringID"><span class="type-signature">(static) </span>getStringID<span class="signature">(input, asObjectID)</span><span class="type-signature"> &rarr; {String}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line306">line 306</a> </li></ul></dd> </dl> <div class="description"> Returns a specified _id for an object </div> <h5>Example</h5> <pre class="prettyprint"><code>//Returns '5cb3d8b3a2219970e6f86927' FluroUtils.getStringID('5cb3d8b3a2219970e6f86927') //Returns true typeof FluroUtils.getStringID({_id:'5cb3d8b3a2219970e6f86927', title, ...}) == 'string'; //Returns true typeof FluroUtils.getStringID({_id:'5cb3d8b3a2219970e6f86927'}, true) == 'object';</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>input</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">An object that is or has an _id property</td> </tr> <tr> <td class="name"><code>asObjectID</code></td> <td class="type"> <span class="param-type">Boolean</span> </td> <td class="description last">Whether to convert to a Mongo ObjectId</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> Will return either a string or a Mongo ObjectId </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">String</span> </dd> </dl> <h4 class="name" id=".guid"><span class="type-signature">(static) </span>guid<span class="signature">()</span><span class="type-signature"> &rarr; {String}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line70">line 70</a> </li></ul></dd> </dl> <div class="description"> A helpful function that can create a globally unique id </div> <h5>Example</h5> <pre class="prettyprint"><code>//Returns 20354d7a-e4fe-47af-8ff6-187bca92f3f9 FluroUtils.guid()</code></pre> <h5>Returns:</h5> <div class="param-desc"> The new guid </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">String</span> </dd> </dl> <h4 class="name" id=".hash"><span class="type-signature">(static) </span>hash<span class="signature">(array, key)</span><span class="type-signature"> &rarr; {Object}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line49">line 49</a> </li></ul></dd> </dl> <div class="description"> A helpful function for creating a fast hash object that can be used for more efficient loops </div> <h5>Example</h5> <pre class="prettyprint"><code>//Returns {something:[{title:'test', definition:'something'}]} FluroUtils.mapReduce([{title:'test', definition:'something'}], 'definition');</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>array</code></td> <td class="type"> <span class="param-type">Array</span> </td> <td class="description last">The array to reduce</td> </tr> <tr> <td class="name"><code>key</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">The key or path to the property to group by</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> A hash object literal </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Object</span> </dd> </dl> <h4 class="name" id=".mapParameters"><span class="type-signature">(static) </span>mapParameters<span class="signature">(parameters)</span><span class="type-signature"> &rarr; {String}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line26">line 26</a> </li></ul></dd> </dl> <div class="description"> A helpful function that can take a keyed object literal and map it to url query string parameters </div> <h5>Example</h5> <pre class="prettyprint"><code>//Returns &amp;this=that&amp;hello=world FluroUtils.mapParameters({"this":"that", "hello":"world"})</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>parameters</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">The object you want to transalte</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> The query string </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">String</span> </dd> </dl> <h4 class="name" id=".matchInArray"><span class="type-signature">(static) </span>matchInArray<span class="signature">(array, path, value, operator)</span><span class="type-signature"> &rarr; {Array}</span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="fluro.utils.js.html">fluro.utils.js</a>, <a href="fluro.utils.js.html#line203">line 203</a> </li></ul></dd> </dl> <div class="description"> A helpful function that can return a subset of an array compared to specified criteria, This is usually used to evaluate expressions on Fluro forms </div> <h5>Example</h5> <pre class="prettyprint"><code>//Returns {name:'Jerry', age:26} as that is only item in the array that matches the criteria FluroUtils.matchInArray([{name:'Jerry', age:26}, {name:'Susan', age:19}], 'age', 26, '>=');</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>array</code></td> <td class="type"> <span class="param-type">Array</span> </td> <td class="description last">The array you want to filter</td> </tr> <tr> <td class="name"><code>path</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">The path to the property you want to compare on each item in the array</td> </tr> <tr> <td class="name"><code>value</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">The value to compare with</td> </tr> <tr> <td class="name"><code>operator</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">Can be Possible options are ('>', '<', '>=', '<=', 'in', '==') Defaults to '==' (Is equal to)</td> </tr> </tbody> </table> <h5>Returns:</h5> <div class="param-desc"> An array that contains all items that matched </div> <dl class="param-type"> <dt> Type </dt> <dd> <span class="param-type">Array</span> </dd> </dl> </article> </section> </div> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Thu Sep 05 2019 21:42:53 GMT+1000 (Australian Eastern Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme. </footer> <script>prettyPrint();</script> <script src="scripts/polyfill.js"></script> <script src="scripts/linenumber.js"></script> </body> </html>