From: charleswrayjr Date: Fri, 12 Sep 2025 01:36:42 +0000 (-0500) Subject: Cleaning up the phone_number.model.js file. X-Git-Url: https://git.phasecustomsoft.com/?a=commitdiff_plain;h=df5b2ceec04bbfd8af5e7d5cadfdcf565599c6fa;p=phs-api.git Cleaning up the phone_number.model.js file. --- diff --git a/src/models/phone_number.model.js b/src/models/phone_number.model.js index 4ed2c4a..ea786a4 100644 --- a/src/models/phone_number.model.js +++ b/src/models/phone_number.model.js @@ -2,7 +2,7 @@ * @file Phone number model for phase.phone_numbers table */ -const { Model, ValidationError } = require('./model'); +const { Model, ValidationError } = require( './model' ); /** * @typedef {Object} PhoneNumber @@ -26,8 +26,8 @@ class PhoneNumber extends Model { * Create a PhoneNumber instance * @param {Partial} [props] - Phone number properties */ - constructor(props) { - super(props); + constructor( props ) { + super( props ); this.table = 'phase.phone_numbers'; this.prepend = 'pn'; this.default_columns = [ @@ -36,8 +36,15 @@ class PhoneNumber extends Model { ]; this.update_exclude_columns = ['id', 'created_at', 'is_deleted', 'deleted_at', 'deleted_by_id']; this.base_query = ` - SELECT pn.id, pn.name, pn.type, pn.number, pn.created_by_id, pn.created_at, - pn.is_deleted, pn.deleted_by_id, pn.deleted_at + SELECT pn.id, + pn.name, + pn.type, + pn.number, + pn.created_by_id, + pn.created_at, + pn.is_deleted, + pn.deleted_by_id, + pn.deleted_at FROM phase.phone_numbers pn WHERE pn.is_deleted = false `; @@ -47,7 +54,7 @@ class PhoneNumber extends Model { WHERE pn.is_deleted = false `; this.default_order_by = 'ORDER BY pn.number ASC'; - this.instance = _props => new PhoneNumber(_props); + this.instance = _props => new PhoneNumber( _props ); } /** @@ -56,22 +63,23 @@ class PhoneNumber extends Model { * @returns {Promise} Created phone number instance * @throws {ValidationError} If required fields are missing */ - static async create(phone_data) { + static async create( phone_data ) { const { name = 'mobile', type = 'mobile', number, created_by_id = null } = phone_data; - if (!number) throw new ValidationError('Missing required field: number'); + if (!number) throw new ValidationError( 'Missing required field: number' ); const query_str = ` INSERT INTO phase.phone_numbers (name, type, number, created_by_id) - VALUES ($1, $2, $3, $4) RETURNING *; + VALUES ($1, $2, $3, $4) + RETURNING *; `; const values = [name, type, number, created_by_id]; - const result = await phsdb.query(query_str, values, { plain: true }); - if (!result) throw new ValidationError('Failed to create phone number'); - return new PhoneNumber(result); + const result = await phsdb.query( query_str, values, { plain:true } ); + if (!result) throw new ValidationError( 'Failed to create phone number' ); + return new PhoneNumber( result ); }; - static async add_user(user_id) { + static async add_user( user_id ) { const done = await require( 'user_phone_number.model' ).add_relation( user_id, this.id ); - if (!done) throw new ValidationError('Failed to add phone number'); + if (!done) throw new ValidationError( 'Failed to add phone number' ); return done; }; @@ -82,9 +90,9 @@ class PhoneNumber extends Model { * @param {string[]} [excludes] - Fields to exclude from result * @returns {Promise} Phone number instance or null */ - static async find_by_number(number, excludes = []) { - return await new PhoneNumber().find_one({ number }, excludes); - } + static async find_by_number( number, excludes = [] ) { + return await new PhoneNumber().find_one( { number }, excludes ); + }; /** * Soft delete phone number @@ -92,27 +100,17 @@ class PhoneNumber extends Model { * @returns {Promise} Updated phone number instance * @throws {ValidationError} If deleted_by_id is invalid */ - async soft_delete(deleted_by_id) { - const deleted_by_id_int = parseInt(deleted_by_id, 10); - if (isNaN(deleted_by_id_int)) { - throw new ValidationError('deleted_by_id must be a valid integer'); + async soft_delete( deleted_by_id ) { + const deleted_by_id_int = parseInt( deleted_by_id, 10 ); + if (isNaN( deleted_by_id_int )) { + throw new ValidationError( 'deleted_by_id must be a valid integer' ); } - return await this.update({ - is_deleted: true, - deleted_at: new Date().toISOString(), - deleted_by_id: deleted_by_id_int - }); - } - - /** - * Get the user who created this phone number - * @returns {Promise} Creator user instance or null - */ - async get_created_by() { - if (!this.created_by_id) return null; - const User = require('./user.model'); - return await new User().find_one({ id: this.created_by_id }, []); - } + return await this.update( { + is_deleted:true, + deleted_at:new Date().toISOString(), + deleted_by_id:deleted_by_id_int + } ); + }; } module.exports = PhoneNumber; \ No newline at end of file