UNPKG

ali-mns-sdk

Version:

The nodejs SDK for aliyun mns service

115 lines 9.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Url = require("url"); const Util = require("util"); const OpenStack_1 = require("./OpenStack"); const Region_1 = require("./Region"); const Debug_1 = require("./utils/Debug"); // The Topic class Topic { // The constructor. name & account is required. // region can be "hangzhou", "beijing" or "qingdao", the default is "hangzhou" constructor(name, account, region) { this._region = new Region_1.Region(Region_1.City.Hangzhou); this._pattern = '%s://%s.mns.%s.aliyuncs.com/topics/%s'; this._name = name; this._account = account; // region if (region) { if (typeof region === 'string') this._region = new Region_1.Region(region, Region_1.NetworkType.Public, Region_1.Zone.China); else this._region = region; } // make url this._urlAttr = this.makeAttrURL(); this._urlSubscription = this.makeSubscriptionURL(); this._urlPublish = this.makePublishURL(); // create the OpenStack object this._openStack = new OpenStack_1.OpenStack(account); } getName() { return this._name; } getAccount() { return this._account; } getRegion() { return this._region; } // 获取Topic的属性值 getAttrsP() { Debug_1.default('GET ' + this._urlAttr); return this._openStack.sendP('GET', this._urlAttr); } // 设置Topic的属性值 setAttrsP(options) { const body = { Topic: options }; Debug_1.default('PUT ' + this._urlAttr, body); return this._openStack.sendP('PUT', this._urlAttr + '?metaoverride=true', body); } // List all subscriptions. listP(prefix, pageSize, pageMarker) { const headers = {}; if (prefix) headers['x-mns-prefix'] = prefix; if (pageMarker) headers['x-mns-marker'] = pageMarker; if (pageSize) headers['x-mns-ret-number'] = pageSize; const url = this._urlSubscription.slice(0, -1); Debug_1.default('GET ' + url); return this._openStack.sendP('GET', url, null, headers); } subscribeP(name, endPoint, notifyStrategy, notifyContentFormat, filterTag) { const body = { Subscription: { Endpoint: endPoint, }, }; if (notifyStrategy) body.Subscription.NotifyStrategy = notifyStrategy; if (notifyContentFormat) body.Subscription.NotifyContentFormat = notifyContentFormat; if (filterTag) body.Subscription.FilterTag = filterTag; const url = Url.resolve(this._urlSubscription, name); Debug_1.default('PUT ' + url, body); return this._openStack.sendP('PUT', url, body); } unsubscribeP(name) { const url = Url.resolve(this._urlSubscription, name); Debug_1.default('DELETE ' + url); return this._openStack.sendP('DELETE', url); } publishP(msg, b64, tag, attrs, options) { const msgBlock = { MessageBody: b64 ? this.utf8ToBase64(msg) : msg, }; if (tag) msgBlock.MessageTag = tag; if (attrs) msgBlock.MessageAttributes = attrs; const body = { Message: msgBlock, }; Debug_1.default('POST ' + this._urlPublish, body); this._openStack.accumulateNextGASend('Topic.publishP'); return this._openStack.sendP('POST', this._urlPublish, body, null, options); } utf8ToBase64(src) { const buf = new Buffer(src, 'utf8'); return buf.toString('base64'); } makeAttrURL() { return Util.format(this._pattern, this._account.getHttps() ? 'https' : 'http', this._account.getAccountId(), this._region.toString(), this._name); } makeSubscriptionURL() { return this.makeAttrURL() + '/subscriptions/'; } makePublishURL() { return this.makeAttrURL() + '/messages'; } } exports.Topic = Topic; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVG9waWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBMkI7QUFDM0IsNkJBQTZCO0FBRzdCLDJDQUF3QztBQUN4QyxxQ0FBMkQ7QUFDM0QseUNBQWtDO0FBRWxDLFlBQVk7QUFDWixNQUFhLEtBQUs7SUFDaEIsK0NBQStDO0lBQy9DLDhFQUE4RTtJQUM5RSxZQUFZLElBQVksRUFBRSxPQUFnQixFQUFFLE1BQXdCO1FBNkg1RCxZQUFPLEdBQUcsSUFBSSxlQUFNLENBQUMsYUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR3BDLGFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztRQS9IekQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsU0FBUztRQUNULElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRO2dCQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFNLENBQUMsTUFBTSxFQUFFLG9CQUFXLENBQUMsTUFBTSxFQUFFLGFBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzs7Z0JBQzdGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1NBQzVCO1FBRUQsV0FBVztRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV6Qyw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHFCQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENB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