| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | // Objection Docs:// http://vincit.github.io/objection.js/const db          = require('../db');const Model       = require('objection').Model;const User        = require('./user');const Certificate = require('./certificate');const now         = require('./now_helper');Model.knex(db);class DeadHost extends Model {	$beforeInsert () {		this.created_on  = now();		this.modified_on = now();		// Default for domain_names		if (typeof this.domain_names === 'undefined') {			this.domain_names = [];		}		// Default for meta		if (typeof this.meta === 'undefined') {			this.meta = {};		}		this.domain_names.sort();	}	$beforeUpdate () {		this.modified_on = now();		// Sort domain_names		if (typeof this.domain_names !== 'undefined') {			this.domain_names.sort();		}	}	static get name () {		return 'DeadHost';	}	static get tableName () {		return 'dead_host';	}	static get jsonAttributes () {		return ['domain_names', 'meta'];	}	static get relationMappings () {		return {			owner: {				relation:   Model.HasOneRelation,				modelClass: User,				join:       {					from: 'dead_host.owner_user_id',					to:   'user.id'				},				modify: function (qb) {					qb.where('user.is_deleted', 0);					qb.omit(['id', 'created_on', 'modified_on', 'is_deleted', 'email', 'roles']);				}			},			certificate: {				relation:   Model.HasOneRelation,				modelClass: Certificate,				join:       {					from: 'dead_host.certificate_id',					to:   'certificate.id'				},				modify: function (qb) {					qb.where('certificate.is_deleted', 0);					qb.omit(['id', 'created_on', 'modified_on', 'is_deleted']);				}			}		};	}}module.exports = DeadHost;
 |