bfx-api-node-models
Version:
Object models for usage with the Bitfinex node API
65 lines (59 loc) • 1.7 kB
JavaScript
const boolValidator = require('./validators/bool')
const numberValidator = require('./validators/number')
const stringValidator = require('./validators/string')
const Model = require('./model')
const fields = {
id: 0,
email: 1,
username: 2,
timezone: 7,
isPaperTradeEnabled: 21,
isUserMerchant: 22
}
const boolFields = ['isPaperTradeEnabled', 'isUserMerchant']
/**
* User Info model
*/
class UserInfo extends Model {
/**
* @param {object|Array} data - user info data
* @param {number} data.id - id
* @param {string} data.email - email
* @param {string} data.username - username
* @param {number} data.timezone - timezone as UTC offset
* @param {number} data.isPaperTradeEnabled - flag indicating paper trading account
* @param {number} data.isUserMerchant - flag indicating merchant account
*/
constructor (data = {}) {
super({ data, fields, boolFields })
}
/**
* @param {object[]|object|Array[]|Array} data - data to convert to POJO
* @returns {object} pojo
*/
static unserialize (data) {
return super.unserialize({ data, fields })
}
/**
* Validates a given historical trading ticker instance
*
* @param {object[]|object|UserInfo[]|UserInfo|Array} data - instance to validate
* @returns {Error|null} error - null if instance is valid
*/
static validate (data) {
return super.validate({
data,
fields,
validators: {
id: numberValidator,
email: stringValidator,
username: stringValidator,
timezone: stringValidator,
isPaperTradeEnabled: boolValidator,
isUserMerchant: boolValidator
}
})
}
}
module.exports = UserInfo