mongo-assets

0.1.31 • Public • Published

Class

MongoAssets

constructor()

config: *

db: *

client: *

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

splitAsset(args: *): *

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

parseQL(ql: *): *

Name Type Attribute Description
ql * nullable: undefined

idify(doc: *): *

Takes a document with a string typed _id, returns it with an ObjectId.

Name Type Attribute Description
doc * nullable: undefined

Function

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.

Readme

Keywords

none

Package Sidebar

Install

npm i mongo-assets

Weekly Downloads

0

Version

0.1.31

License

ISC

Unpacked Size

23.1 MB

Total Files

100

Last publish

Collaborators

  • verikono