https://github.com/icapps/tree-house-communication
Provide easy communication to external services
https://github.com/icapps/tree-house-communication
Last synced: 11 months ago
JSON representation
Provide easy communication to external services
- Host: GitHub
- URL: https://github.com/icapps/tree-house-communication
- Owner: icapps
- License: isc
- Created: 2019-02-04T12:02:46.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-07-25T17:15:27.000Z (almost 4 years ago)
- Last Synced: 2025-07-01T04:49:48.592Z (11 months ago)
- Language: TypeScript
- Size: 982 KB
- Stars: 2
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Treehouse Communication
Communication module written in TypeScript providing communication utilities.
[](https://badge.fury.io/js/%40icapps%2Ftree-house-communication)
[](https://david-dm.org/icapps/tree-house-communication.svg)
[](https://travis-ci.com/icapps/tree-house-communication)
[](https://coveralls.io/github/icapps/tree-house-communication)
[](https://greenkeeper.io/)
## General
This module is used to send emails with Mandrill and only template requests (for now).
## Installation
```shell
npm install @icapps/tree-house-communication
```
## Usage examples
### Email using the mandrill api:
```typescript
import * as treeHouse from 'tree-house-communication';
// set Mandrill API key
treeHouse.setMandrillApiKey('secretMandrillKey');
// Create email(s)
const mailInfo: ITemplateRequest = {
templateName: 'icapps-newsletter-template',
subject: 'My subject',
from: { email: 'info@icapps.be', name: 'Info icapps' },
to: [{
email: 'testAddress@gmail.com', name: 'Optional',
content: [{ name: 'greeting', value: 'Hello test!' }]
}],
globalContent: [{ name: 'news', value: 'content of big news' }],
};
const extraMandrillOptions = {
async: true,
message: { bcc_address: 'test@gmail.com' }
}
// Send email(s)
const result = await treeHouse.sendEmailWithTemplate(mailInfo, extraMandrillOptions);
```
// example result
```json
[
{
"email": "email@mail.com",
"status": "queued",
"_id": "e8b9d10ea47e47629d95b22fe200389d"
},
{
"email": "anotherEmail@mail.com",
"status": "queued",
"_id": "308274f983f14eb09d266dd9abe51546"
}
]
```
See all [extraMandrillOptions](https://mandrillapp.com/api/docs/messages.JSON.html#method=send-template)
### Send text message using twilio:
```typescript
import * as treeHouse from 'tree-house-communication'
// set Mandrill API key
treeHouse.setTwilioAccountSid('twilioAccountSid');
treeHouse.setTwilioAuthToken('twilioAuthToken');
// Send text message
const result = await treeHouse.sendTextMessage(mailInfo, extraMandrillOptions);
```
// example result
```json
{
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"api_version": "2010-04-01",
"body": "This is the ship that made the Kessel Run in fourteen parsecs?",
"date_created": "Thu, 30 Jul 2015 20:12:31 +0000",
"date_sent": "Thu, 30 Jul 2015 20:12:33 +0000",
"date_updated": "Thu, 30 Jul 2015 20:12:33 +0000",
"direction": "outbound-api",
"error_code": null,
"error_message": null,
"from": "+15017122661",
"messaging_service_sid": "MGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"num_media": "0",
"num_segments": "1",
"price": null,
"price_unit": null,
"sid": "SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "sent",
"subresource_uris": {
"media": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Media.json"
},
"to": "+15558675310",
"uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
}
```
## Tests
- You can run `npm run test` to run all tests
- You can run `npm run test:coverage` to run all tests with coverage report
## Authors
See the list of [contributors](https://github.com/icapps/tree-house-communication/contributors) who participated in this project.
## License
This project is licensed under the ISC License - see the [LICENSE.md](LICENSE.md) file for details