thinkraz-api-sdk
Version:
橡芮科技API开发包
88 lines (82 loc) • 2.91 kB
JavaScript
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);
});
});
}
};