* @file Phone number model for phase.phone_numbers table
*/
-const { Model, ValidationError } = require( './model' );
+const { Model, NotFoundError, FailedToCreateError, ValidationError } = require( './model' );
/**
* @typedef {Object} PhoneNumber
`;
this.default_order_by = 'ORDER BY pn.number ASC';
this.instance = _props => new PhoneNumber( _props );
- }
+ };
/**
* Create a new phone number
* @param {Omit<PhoneNumber, 'id'|'created_at'|'is_deleted'|'deleted_by_id'|'deleted_at'>} phone_data - Phone number data
* @returns {Promise<PhoneNumber>} Created phone number instance
* @throws {ValidationError} If required fields are missing
+ * @throws {FailedToCreateError} If creation fails
*/
static async create( phone_data ) {
const { name = 'mobile', type = 'mobile', number, created_by_id = null } = phone_data;
`;
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' );
+ if (!result) throw new FailedToCreateError( 'Failed to create phone number' );
return new PhoneNumber( result );
};
- 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' );
- return done;
- };
-
- // noinspection JSUnusedGlobalSymbols
/**
* Find phone number by number
* @param {string} number - Phone number to search for
* @param {number|string} deleted_by_id - ID of user performing deletion
* @returns {Promise<PhoneNumber>} Updated phone number instance
* @throws {ValidationError} If deleted_by_id is invalid
+ * @throws {NotFoundError} If record not found
*/
async soft_delete( deleted_by_id ) {
const deleted_by_id_int = parseInt( deleted_by_id, 10 );