accountdown-model
This module is a wrapper around accountdown that provides a few extra features: changing username & password, validation using json-schema, and simple indexing of properties.
It's meant to have roughly the same api & features as level-model
Installation
npm install --save accountdown-model
Usage
Currently you must use accountdown-basic and you must use key
as the name of the identifier for the account. You also must pass the level db as an option. Basically, you'll want to set up the modules exactly like this:
var db = level('example')
function accountdownBasic (db, prefix) {
return require('accountdown-basic')(db, prefix, { key: 'key' })
}
var accountdown = accountdown(sublevel(db, 'accounts'), {
login: { basic: accountdownBasic }
})
var accounts = require('accountdown-model')(accountdown, {
db: db
})
Additionally, you can specify properties that should be stored in the value
object of the account, and control which of those properties should be required and indexed.
An example:
var accounts = require('accountdown-model')(accountdown, {
db: db,
properties: {
username: { type: 'string' },
email: { type: 'string' }
},
required: ['username', 'email'],
indexKeys: ['username', 'email']
})
API
Exactly the same as accountdown, with these additions:
var accounts = require('accountdown-model')(accountdown, {
db: db
})
accounts.update(key, data, callback)
Updates the indexes of the properties and saves the values.
accounts.changePassword(key, password, callback)
accounts.changeUsername(key, username, callback)
License
MIT