@janiscommerce/conversation
v2.0.0
Published
A package to send notifications using Janis Conversation Service
Downloads
697
Readme
conversation
A package to send notifications using Janis Conversation Service
Installation
npm install @janiscommerce/conversation
Available methods
Configuration methods
The methods that you can use to create the notification: (All these methods are chainable)
setTopic [topic: String]
: This method sets which template should use the notificationsetData [data: Object]
: This method sets the data that eventually the template should use when sending the notification.setEntity [entity: String|Number]
: This method sets the entity related to the notification.setEntityId [entityId: String|Number]
: This method sets the entity ID related to the notification.setUserCreated [userCreated: String]
: This method sets the User ID related to the user that triggered the notification.setClientCode [clientCode: String]
This method should be used to be able to make requests "on behalf" of the client, in case the session has not been injected.
Method of use
send
This method sends the notification set using the Conversation package. Returns the ID of the created message.
ClientCode injection
The package uses the Janis Conversation Service, so it needs the clientCode
to be able to use it's API. You have two ways to do so:
- Instanciate the package in a sessioned class using
this.session.getSessionInstance(Conversation)
(see @janiscommerce/api-session) - Setting the
clientCode
using theconversation.setClientCode('clientCode')
method
Errors
The errors are informed with a ConversationError
.
This object has a code that can be useful for a correct error handling or debugging.
The codes are the following:
| Code | Description | |------|--------------------------------| | 1 | Required field missing | | 2 | Invalid field type | | 3 | Microservice call Error |
Examples
Client injection
With clientCode
const { Conversation } = require('@janiscommerce/conversation');
const conversation = new Conversation();
await conversation.setTopic('example-topic')
.setClientCode('client-code')
.send();
With session
const { Conversation } = require('@janiscommerce/conversation');
const API = require('@janiscommerce/api');
class ApiExample extends API {
async process() {
const conversation = this.session.getSessionInstance(Conversation);
try {
await conversation.setTopic('example-topic').send();
} catch(error) {
console.log(error);
}
}
}
module.exports = ApiExample;
Examples
Send a message
Basic usage
const { Conversation } = require('@janiscommerce/conversation');
const conversation = new Conversation();
await conversation.setClientCode('client-code')
.setTopic('example-topic')
.send();
Complete Usage
const { Conversation } = require('@janiscommerce/conversation');
const conversation = new Conversation();
await conversation.setClientCode('client-code')
.setTopic('example-topic')
.setEntity('order')
.setEntityId('5de565c07de99000110dcdef')
.setUserCreated('6de565c07de99000110dcdef')
.setData({
someField: 'someFieldValue',
otherField: 'otherFieldValue'
})
.send();