0.1.5 add no email send, get service can return all service, added getServicesList to get just names
parent
1fa512da93
commit
5f0532f8aa
|
@ -16,16 +16,20 @@ import Notifier from '@uci-utils/notify'
|
|||
{ user: process.env.GMAIL_SMTP_USER,
|
||||
pass:process.env.GMAIL_SMTP_PW
|
||||
},
|
||||
to: process.env.NOTIFY_EMAIL_RECIPIENTS,
|
||||
to: process.env.NOTIFY_EMAIL_RECIPIENTS.split(','),
|
||||
subject:'uci notification'
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
console.log('registered services\n',notify.getServicesList())
|
||||
console.log('registered services\n',notify.getService())
|
||||
// console.log (notify._services.pushsafer._req)
|
||||
// notify.disableService('pushsafer')
|
||||
// notify.enableService('pushsafer')
|
||||
// console.log(await notify.send('a test message','pushsafer'))
|
||||
console.log('pushsafter only', await notify.send('a pushsafter only message','pushsafer'))
|
||||
console.log('not email', await notify.send('all but email message','!email'))
|
||||
console.log('email only', await notify.send('email only message','email'))
|
||||
let res = await notify.send('simple message to all services')
|
||||
// let res = await notify.send({subject:'subject as message',text:'this details'})
|
||||
// if (res.error) console.log('errors',res)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"description": "notify example application",
|
||||
"main": "example.js",
|
||||
"scripts": {
|
||||
"start": "node -r esm example.js"
|
||||
"start": "./run"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
export PS_API_KEY=DLq9cXqNwBptT4CxD5cQ
|
||||
export PS_DEVICE_ID=gs1992
|
||||
export GMAIL_SMTP_USER=kebler.net@gmail.com
|
||||
export GMAIL_SMTP_PW=seniobjybxwuhjvj
|
||||
export NOTIFY_EMAIL_RECIPIENTS='kebler.net@gmail.com,dgkebler@gmail.com'
|
||||
node -r esm example.js
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"name": "@uci-utils/notify",
|
||||
"version": "0.1.3",
|
||||
"version": "0.1.5",
|
||||
"description": "Integrated Notification System with service plugins",
|
||||
"main": "src/notify",
|
||||
"scripts": {
|
||||
"example:dev": "./node_modules/.bin/nodemon -r esm ./examples/example.js",
|
||||
"example:dev": "./node_modules/.bin/nodemon -r esm ./example/example.js",
|
||||
"test": "./node_modules/.bin/mocha -r esm --timeout 30000"
|
||||
},
|
||||
"author": "David Kebler",
|
||||
|
@ -26,5 +26,8 @@
|
|||
"app-root-path": "^3.0.0",
|
||||
"await-to-js": "^2.1.1",
|
||||
"jsonfile": "^6.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"esm": "^3.2.25"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,12 +71,15 @@ class Notifier {
|
|||
}
|
||||
|
||||
async send (msg,service,opts={}) {
|
||||
if (service) {
|
||||
if (service!==null || service==='!email') {
|
||||
if (this._services[service]) return await this._services[service].send(msg,opts)
|
||||
}
|
||||
let response = {}
|
||||
let services = Object.entries(this._services)
|
||||
if (service==='!email') services = services.filter(service => service[0]!=='email')
|
||||
// console.log('services for message send', services.map(service=>service[0]))
|
||||
await Promise.all(
|
||||
Object.entries(this._services).map(async service => {
|
||||
services.map(async service => {
|
||||
let res = this._disabled.includes(service[0]) ? 'disabled' : await service[1].send(msg,opts[service[0]])
|
||||
if (res.error) response.error ? response.error[service[0]] = res.error : response = { error:{[service[0]]:res.error}}
|
||||
response[service[0]]=res
|
||||
|
@ -86,7 +89,12 @@ class Notifier {
|
|||
return response
|
||||
}
|
||||
|
||||
getService(name) { return this._services[name]}
|
||||
getServicesList() { return Object.keys(this._services) }
|
||||
|
||||
getService(name) {
|
||||
if (name==null) return this._services
|
||||
return this._services[name]
|
||||
}
|
||||
|
||||
} // end Notifier class
|
||||
|
||||
|
|
Loading…
Reference in New Issue