UNPKG

thinkraz-api-sdk

Version:

橡芮科技API开发包

88 lines (82 loc) 2.91 kB
const Promise = require('bluebird'); const baseClass = require('../lib/baseClass'); module.exports = class Im extends baseClass { createChannel(channelName, isPublic, enableRecord, notifyUrl) { isPublic = !!isPublic; enableRecord = !!enableRecord; if (!notifyUrl) notifyUrl = null; return new Promise((resolve, reject) => { this.request().post(this.getPath(), { channel: channelName, public: isPublic, record: enableRecord, notifyUrl: notifyUrl }).then(channel => { resolve(channel); }).catch(err => { reject(err); }); }); } createTempleChannel(isPublic, enableRecord, notifyUrl) { isPublic = !!isPublic; enableRecord = !!enableRecord; if (!notifyUrl) notifyUrl = null; return new Promise((resolve, reject) => { this.request().post(this.getPath(), { public: isPublic, record: enableRecord, notifyUrl: notifyUrl }).then(channel => { resolve(channel); }).catch(err => { reject(err); }); }); } sendMessage(channelId, messageData, emitter, event, channelKey) { return new Promise((resolve, reject) => { if (!event) event = 'message'; if (!channelKey) channelKey = null; if (!emitter) emitter = null; this.request().post(`${this.getPath()}/messages`, { channel: channelId, message: messageData, emitter: emitter, event: event, key: channelKey }).then(messageObj => { resolve(messageObj); }).catch(err => { reject(err); }); }); } getMessages(channelId, options) { return new Promise((resolve, reject) => { this.request().get(`${this.getPath()}/${channelId}/messages`, options).then(messageResults => { resolve(messageResults); }).catch(err => { reject(err); }); }); } getChannel(channelId) { return new Promise((resolve, reject) => { this.request().get(`${this.getPath()}/${channelId}`).then(channel => { resolve(channel); }).catch(err => { reject(err); }); }); } getPrivateChannels() { return new Promise((resolve, reject) => { this.request().get(this.getPath()).then(privateChannels => { resolve(privateChannels); }).catch(err => { reject(err); }); }); } };