ilp-core
Version:
ILP core module managing ledger abstraction
55 lines (43 loc) • 1.25 kB
JavaScript
module.exports = PeerFactory
const _ = require('lodash')
const Model = require('five-bells-shared').Model
const PersistentModelMixin = require('five-bells-shared').PersistentModelMixin
const Database = require('../lib/db')
const Validator = require('five-bells-shared/lib/validator')
const Sequelize = require('sequelize')
module.exports.DEFAULT_CURRENCY_SCALE = 9
PeerFactory.constitute = [Database, Validator]
function PeerFactory(sequelize, validator) {
class Peer extends Model {
static convertFromExternal(data) {
return data
}
static convertToExternal(data) {
delete data.created_at
delete data.updated_at
return data
}
static convertFromPersistent(data) {
data = _.omit(data, _.isNull)
return data
}
static convertToPersistent(data) {
return data
}
}
Peer.validateExternal = validator.create('Peer')
PersistentModelMixin(Peer, sequelize, {
id: {
type: Sequelize.UUID,
primaryKey: true,
defaultValue: Sequelize.UUIDV4
},
hostname: Sequelize.STRING,
limit: Sequelize.INTEGER,
currencyCode: Sequelize.STRING,
currencyScale: Sequelize.INTEGER,
destination: Sequelize.STRING
})
return Peer
}