initialize(config: Object, config.endpoint: String): Promise
Initialize the instance, connecting it to the database.
Name |
Type |
Attribute |
Description |
config |
Object |
|
a valid config object |
config.endpoint |
String |
|
'mongodb://user:pass@host:port/db' |
connect(args: object, args.endpoint: string): Promise
Create a connection to the mongo database, setting this.db as an instance.
Name |
Type |
Attribute |
Description |
args |
object |
|
|
args.endpoint |
string |
|
|
disconnect(args: Object): {"success": boolean}
Disconnect the instance from the database.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
createAsset(args: Object, args.type: String, args.user: Object, args.asset: Object, args.relate: Boolean, args.assoc_method: Boolean, args.role: Object): Promise
Insert an asset, associating it to the user role
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the type of asset (this determines the document collection) |
args.user |
Object |
|
the current user, this determines the roles, team. |
args.asset |
Object |
|
the "asset", the document. |
args.relate |
Boolean |
|
indicator to relate the asset to the user's role, default true. |
args.assoc_method |
Boolean |
|
the method to relate with - currently supports 'reference', 'clone', default 'clone'; |
args.role |
Object |
|
associate the asset to a specific role the user belongs to, default the user's user role. |
createAssets(args: Object, args.type: String, args.user: Object, args.assets: Object|Array, args.relate: Boolean, args.assoc_method: String, args.role: Object): Promise
Insert an array of assets, associating it to the user role
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object. |
args.type |
String |
|
the type of asset ( this determines the document collection) |
args.user |
Object |
|
the current user, this determines the roles, team. |
args.assets |
Object |
Array |
|
args.relate |
Boolean |
|
indicator to relate the asset to the user's role, default true. |
args.assoc_method |
String |
|
the association method to use, default 'clone'. |
args.role |
Object |
|
associate the asset to a specific role the user belongs to, default the user's user role. |
updateAsset(args: Object, args.type: String, args.asset: Object, args.assoc_method: String): Promise
Update Asset
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the asset type. |
args.asset |
Object |
|
the asset. |
args.assoc_method |
String |
|
the association method to use; if not provided the store default is used, failing that defaults to "clone" |
deleteAsset(args: Object, args.type: String, args.asset: Object, args.recycle: Boolean): Promise
Delete an asset, disassociating it from all related items.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the asset type |
args.asset |
Object |
|
the asset |
args.recycle |
Boolean |
|
move the asset to the recycle colection, default false. |
deleteAssets(args: Object, args.type: String, args.assets: Array, args.asset: Object): Promise
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the asset type. |
args.assets |
Array |
|
an array of assets. |
args.asset |
Object |
|
a single asset to remove, for convenience. |
dropAssetType(args: Object, args.type: String): Promise
Drop an asset type entirely, removing all associates.
Name |
Type |
Attribute |
Description |
args |
Object |
|
|
args.type |
String |
|
|
assetCollectionExists(args: Object, args.type: String): Promise
Check for the existence of an asset collection.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the type of asset to check for |
associate(args: Object, args.target: Object, args.source: Object, args.relationship: String, args.assoc_method: String, args.withTree: Boolean, args.returnOnly: String): Promise
Associate Assets.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object. |
args.target |
Object |
|
the target asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} |
args.source |
Object |
|
the source asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} |
args.relationship |
String |
|
relationship type, 'target' (target receives a relationship to the source), 'source' (source recieves a relationship to the target), or "peer" (both receive a relationship), default 'target'. |
args.assoc_method |
String |
|
the assocation method, supported are 'clone', 'reference', default : clone. |
args.withTree |
Boolean |
|
DEPRECATING... Include all subtrees in the association. By default we ONLY associate the top level elements which are not arrays or objects - argue true to associate the entire subtree. This is a safetu precaution. |
args.returnOnly |
String |
|
what to return, 'peer' returns both as { target: , source: }, 'target' returns only the target, 'source' returns only the source. Default is 'source'.
|
disassociate(args: Object, args.target: Object, args.source: Object, args.relationship: String, args.assoc_method: String, args.withTree: Boolean, args.returnOnly: String): Promise
Disassociate Assets.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object. |
args.target |
Object |
|
the target asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} |
args.source |
Object |
|
the source asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} |
args.relationship |
String |
|
relationship type, 'target' (target removes a relationship to the source), 'source' (source removes a relationship to the target), or "peer" (both remove a relationship) |
args.assoc_method |
String |
|
the assocation method, supported are 'clone', 'reference', default : clone. |
args.withTree |
Boolean |
|
DEPRECATING... Include all subtrees in the association. By default we ONLY associate the top level elements which are not arrays or objects - argue true to associate the entire subtree. This is a safetu precaution. |
args.returnOnly |
String |
|
what to return, 'peer' returns both as { target: , source: }, 'target' returns only the target, 'source' returns only the source. Default is 'source'.
|
updateAssociations(args: Object, args.type: String, args.asset: Object): Promise
Update all associations of an argued asset.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the asset type. |
args.asset |
Object |
|
the asset |
dropAssociations(args: Object, args.type: String, args.asset: Object): Promise
Drop all assocations from the asset and update associates, this orphans the asset (useful prior to deletion of an asset)
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument objet |
args.type |
String |
|
the asset type |
args.asset |
Object |
|
the asset |
gatherAssets(args: Object, args.user: Object, args.type: String, args.types: Array): Promise
Gather assets associated to argued roles.
Name |
Type |
Attribute |
Description |
args |
Object |
|
then argument object |
args.user |
Object |
|
the user. |
args.type |
String |
|
the asset type. |
args.types |
Array |
|
an array of asset types to gather. |
getAssociates(args: Object, args.assetType: String, args.assocs: Array, args.exclude: Array): Promise
Retrieve the associates in their full form.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object. |
args.assetType |
String |
|
the type of asset. |
args.assocs |
Array |
|
an array of assets either in their full form (clone) or reference form. |
args.exclude |
Array |
|
an array of ids to exclude from the return |
getAssociatedRoles(args: Object, args.type: String, args.asset: Object): Promise
Gain the roles assocated to an argued asset.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the argument type |
args.asset |
Object |
|
the asset to gain roles from. |
shareAssets(args: Object, args.user: Object, args.type: String, args.asset: Object, args.assets: Object, args.role: Object, args.roles: Object, args.assoc_method: String): Promise
Share assets to argued roles.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.user |
Object |
|
the user |
args.type |
String |
|
the asset type. |
args.asset |
Object |
|
the asset |
args.assets |
Object |
|
an array of assets to share |
args.role |
Object |
|
the target role |
args.roles |
Object |
|
an array of target roles |
args.assoc_method |
String |
|
|
_isRealObject(obj: Object): Boolean
Test a variable to be an object
Name |
Type |
Attribute |
Description |
obj |
Object |
|
the object to test |
defaultrole(user: Object): Object
Get the default role for an argued user.
Name |
Type |
Attribute |
Description |
user |
Object |
|
|
handleError(method: String, err: Error, options: Object): {"success": *, "errored": boolean, "message": string}
Error handler.
Name |
Type |
Attribute |
Description |
method |
String |
|
|
err |
Error |
|
|
options |
Object |
|
|
Name |
Type |
Attribute |
Description |
args |
* |
nullable: undefined |
|
_findAssetChunks(root: *, key: *, chunks: *, itr: *, id: *): {"root": *, "chunks": *, "paged": *, "pages": *, "frag": *}
Name |
Type |
Attribute |
Description |
root |
* |
nullable: undefined |
|
key |
* |
nullable: undefined |
|
chunks |
* |
nullable: undefined |
|
itr |
* |
nullable: undefined |
|
id |
* |
nullable: undefined |
|
create(args: object, args.collection: string, args.documents: array): *
Insert one or many documents
Name |
Type |
Attribute |
Description |
args |
object |
|
|
args.collection |
string |
|
the collection to insert the document into. |
args.documents |
array |
|
the document being inserted. |
findOne(args: Object, args.collection: String, args.frag: Object): Promise
Find One asset.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.collection |
String |
|
the collection |
args.frag |
Object |
|
the search fragment. |
find(args: object, args.collection: string, args.documents: object|array, args.ql: function, args.fuse: boolean, args.debug: boolean): *
Name |
Type |
Attribute |
Description |
args |
object |
|
|
args.collection |
string |
|
the collection which the saught document resides. |
args.documents |
object |
array |
|
args.ql |
function |
|
dirty as, "graphQL" reducer argument. |
args.fuse |
boolean |
|
for QL queries, if a single root is provided eg '{module}' or '{module.something}' then an object is returned rather than an array, fusing all items on that key. |
args.debug |
boolean |
|
flag true to see operation manifest. |
distinct(args: Object, args.collection: String, args.attribute: String): Array
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.collection |
String |
|
the subject collection. |
args.attribute |
String |
|
the attribute to return a unique list for. |
findAsset(args: Object, args.type: String, args.frag: Object): Object
Retrieve an asset.
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument Object |
args.type |
String |
|
the cannonical type of asset |
args.frag |
Object |
|
the search shim/document frag. |
findAssets(args: object, args.user: object, args.role: object|array, args.userrole: boolean, args.type: string): *
Retrieve assets for a given user/roles.
Name |
Type |
Attribute |
Description |
args |
object |
|
the argument object |
args.user |
object |
|
the user object |
args.role |
object |
array |
|
args.userrole |
boolean |
|
when provided as true, only assets associated to the user will be returned. |
args.type |
string |
|
the type of asset to retrieve. |
getAssetPartial(args: object, args.type: string, args.asset: object, args.nest: string, args.page: integer, args.pages: array): *
Name |
Type |
Attribute |
Description |
args |
object |
|
the argument object |
args.type |
string |
|
the type of asset |
args.asset |
object |
|
the asset. |
args.nest |
string |
|
|
args.page |
integer |
|
the page number |
args.pages |
array |
|
the page range. |
findAssociatedRoles(args: object, args.type: string, args.asset: object): *
Retrieve roles that are associated to a given asset.
Name |
Type |
Attribute |
Description |
args |
object |
|
the argument object. |
args.type |
string |
|
the type of asset being saught |
args.asset |
object |
|
the asset. |
updateOne(args: object, args.collection: string, args.document: object, args.ops: object): Promise
Update a document
Name |
Type |
Attribute |
Description |
args |
object |
|
|
args.collection |
string |
|
the collection which the saught document resides. |
args.document |
object |
|
the document |
args.ops |
object |
|
an object of special $ ops, eg, $push, $set etc.. default is null and when null the args.document is used as the update, otherwise this is used. |
deleteOne(args: object, args.collection: string, args.document: object): object
Deletes a document
Name |
Type |
Attribute |
Description |
args |
object |
|
|
args.collection |
string |
|
The collection to remove the document from |
args.document |
object |
|
The document being removed, we enforce the id be present for data sanity. |
delete(args: object, args.collection: string, args.frag: object, args.documents: array): object
Deletes multiple documents
Name |
Type |
Attribute |
Description |
args |
object |
|
|
args.collection |
string |
|
The collection to remove the document from |
args.frag |
object |
|
The document being removed, we enforce. |
args.documents |
array |
|
an array of documents scheduled for deleteion. |
deleteOneAsset(args: *): *
Name |
Type |
Attribute |
Description |
args |
* |
nullable: undefined |
|
releaseAssets(args: object): *
Release assets from a relationship, effective "un-sharing" them.
Name |
Type |
Attribute |
Description |
args |
object |
|
the argument object. |
releaseAssetType(args: object, args.type: string, args.target: object, args.targetType: string): *
Release an entire assetType from a relationship, effectively unsharing that type.
Name |
Type |
Attribute |
Description |
args |
object |
|
the argument object. |
args.type |
string |
|
the type of asset to release/unshare |
args.target |
object |
|
the document to unrelease the share - normally a role. |
args.targetType |
string |
|
the type of target, default 'role' |
assetToAssoc(method: String, type: String, asset: Object): Promise
Get the association representation of an asset.
Name |
Type |
Attribute |
Description |
method |
String |
|
the assoc_method , supported is 'clone', 'reference'. |
type |
String |
|
the cannoncial type of the asset. |
asset |
Object |
|
the asset |
assocToAsset(asset: Object): Promise
Gain the actual asset from an association method.
Name |
Type |
Attribute |
Description |
asset |
Object |
|
the asset it its association form. |
reassociate(args: Object, args.type: String, args.role: Object|Array, args.method: String): Array
Change the association method of related assets to a role(s)
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object |
args.type |
String |
|
the asset type |
args.role |
Object |
Array |
|
args.method |
String |
|
the method to reassociate with. |
decouple_associates(o: *): *
Strip an objects out of arrays and objects, leaving just the attributes.
Name |
Type |
Attribute |
Description |
o |
* |
nullable: undefined |
|
Name |
Type |
Attribute |
Description |
ql |
* |
nullable: undefined |
|
Takes a document with a string typed _id, returns it with an ObjectId.
Name |
Type |
Attribute |
Description |
doc |
* |
nullable: undefined |
|
withMongoAssets(args: Object, args.key: String, args.initialize: Boolean, args.config: Object, args.config.endpoint: String): *
Decorate a class with an instance of Mongo Assets
Name |
Type |
Attribute |
Description |
args |
Object |
|
the argument object. |
args.key |
String |
|
the class variable to attach the instance to, default 'db'. |
args.initialize |
Boolean |
|
Initialize the MongoAssets instance upon class declaration, default false. |
args.config |
Object |
|
a configuration object, required if initializing via the decorator, otherwise argue your config to myClass.db.initialize()
|
args.config.endpoint |
String |
|
a mongo database URI. |