]> PHS Git Server - phs-api.git/commitdiff
Cleaning up the phone_number.model.js file.
authorcharleswrayjr <charleswrayjr@gmail.com>
Fri, 12 Sep 2025 01:36:42 +0000 (20:36 -0500)
committercharleswrayjr <charleswrayjr@gmail.com>
Fri, 12 Sep 2025 01:36:42 +0000 (20:36 -0500)
src/models/phone_number.model.js

index 4ed2c4a96500df526793105b6f8fd2db4b746087..ea786a49d462de8ca02ffb0946943b881ad486b8 100644 (file)
@@ -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<PhoneNumber>} [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<PhoneNumber>} 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<PhoneNumber|null>} 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<PhoneNumber>} 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<User|null>} 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