The DTP Sites web app development engine.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

55 lines
1.1 KiB

// sms.js
// Copyright (C) 2022 DTP Technologies, LLC
// License: Apache-2.0
'use strict';
// const mongoose = require('mongoose');
const libphonenumber = require('libphonenumber-js');
const { SiteLog } = require('../../lib/site-lib');
class SmsService {
constructor (dtp) {
this.dtp = dtp;
this.log = new SiteLog(dtp, `svc:${module.exports.slug}`);
}
async start ( ) {
this.log.info(`starting ${module.exports.name} service`);
}
async stop ( ) {
this.log.info(`stopping ${module.exports.name} service`);
}
async send (message) {
this.log.info('sending SMS', message);
}
/**
*
* @param {*} phoneNumber
* @returns
*/
async checkPhoneNumber (phoneNumber) {
const { parsePhoneNumber } = libphonenumber;
const phoneCheck = parsePhoneNumber(phoneNumber, 'US');
if (!phoneCheck.isValid() || !phoneCheck.number) {
throw new Error('Invalid phone number');
}
return phoneCheck; // in case caller wants full data
}
}
module.exports = {
slug: 'sms',
name: 'sms',
create: (dtp) => {
return new SmsService(dtp);
},
};