Skip to content

Repository files navigation

seven logo

seven Connector for LoopBack 4

Official LoopBack 4 connector for sending SMS, placing text-to-speech calls and dispatching RCS messages via the seven gateway.

MIT LicensenpmLoopBack 4Node.js 14+


Features

Supports the following seven REST API endpoints:

Prerequisites

Installation

npm i @seven.io/loopback
# or
yarn add @seven.io/loopback

Setup

1. Create a data source

import{inject,lifeCycleObserver,LifeCycleObserver}from'@loopback/core'import{juggler}from'@loopback/repository'import{SevenConnector}from'@seven.io/loopback'constconfig={apiKey: process.env.SEVEN_API_KEY,connector: SevenConnector,name: 'seven',}
@lifeCycleObserver('datasource')exportclassSevenDataSourceextendsjuggler.DataSourceimplementsLifeCycleObserver{staticdataSourceName='seven'staticreadonlydefaultConfig=configconstructor(
@inject('datasources.config.seven',{optional: true})dsConfig: object=config,){super('seven',dsConfig)}}

2. Create a model

import{Model,model,property}from'@loopback/repository'
@model()exportclassSevenMessageextendsModel{
@property({id: true,required: true,type: 'string'})operation: 'voice'|'sms'|'rcs'
@property({required: true,type: 'string'})to: string
@property({required: false,type: 'string'})from: string
@property({required: true,type: 'string'})text: stringconstructor(data?: Partial<SevenMessage>){super(data)}}

3. Create a service provider

import{injectable,BindingScope,Provider,inject}from'@loopback/core'import{GenericService,getService}from'@loopback/service-proxy'import{SevenDataSource}from'../datasources'import{SevenMessage}from'../models'exportinterfaceSevenextendsGenericService{send(data: SevenMessage): Promise<unknown>}
@injectable({scope: BindingScope.TRANSIENT})exportclassSevenProviderimplementsProvider<Seven>{constructor(
@inject('datasources.seven')protecteddataSource: SevenDataSource=newSevenDataSource(),){}value(): Promise<Seven>{returngetService(this.dataSource)}}

Usage

constmsg=newSevenMessage({from: 'Acme',operation: 'sms',text: 'Hello from LoopBack',to: '+491234567890',})awaitsevenProvider.send(msg)

Switch operation to voice for text-to-speech, or rcs for RCS messages.

Payload schemas

OperationFields
smsfrom?, text, to
voicefrom?, text (or XML), to
rcsfrom? (agent ID), text, to

Support

Need help? Feel free to contact us or open an issue.

License

MIT

About

Official LoopBack component for seven

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages