oak-general-business/lib/page.mp.js

123 lines
5.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createComponent = exports.subscribeMpMessage = void 0;
var tslib_1 = require("tslib");
var page_mp_1 = require("oak-frontend-base/lib/page.mp");
var Exception_1 = require("./types/Exception");
/**
* 这里的逻辑暴露出去是为了让general可以被其它库重载
* @param this
* @param messageTypes
* @param haveToAccept
* @param action
* @param messageProps
* @returns
*/
function subscribeMpMessage(messageTypes, haveToAccept, tip) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var mttIds, tmplIds, result_1, rejected;
var _this = this;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
mttIds = this.features.cache.get('messageTypeTemplateId', {
data: {
id: 1,
templateId: 1,
type: 1,
},
filter: {
type: {
$in: messageTypes,
},
},
});
if (!(mttIds.length > 0)) return [3 /*break*/, 2];
tmplIds = mttIds.map(function (ele) { return ele.templateId; });
return [4 /*yield*/, wx.requestSubscribeMessage({
tmplIds: tmplIds
})];
case 1:
result_1 = _a.sent();
rejected = Object.keys(result_1).filter(function (ele) {
if (result_1[ele] === 'reject') {
return true;
}
else if (result_1[ele] !== 'accept') {
_this.setMessage({
type: 'warning',
content: "\u7C7B\u578B".concat(ele, "\u7684\u6A21\u677F\u6D88\u606F\u88AB").concat(result_1[ele], "\uFF0C\u8BF7\u7BA1\u7406\u5458\u67E5\u770B\u540E\u53F0"),
});
}
});
if (rejected.length > 0 && haveToAccept) {
if (tip) {
this.setMessage({
type: 'warning',
content: tip,
});
return [2 /*return*/, false];
}
throw new Exception_1.OakMpHaveToSubscribeMessage(rejected);
}
_a.label = 2;
case 2: return [2 /*return*/, true];
}
});
});
}
exports.subscribeMpMessage = subscribeMpMessage;
function createComponent(option, features) {
var wechatMp = option.wechatMp, methods = option.methods, lifetimes = option.lifetimes, rest = tslib_1.__rest(option, ["wechatMp", "methods", "lifetimes"]);
var relatedMessageTypes = (wechatMp || {}).relatedMessageTypes;
var _a = lifetimes || {}, ready = _a.ready, attached = _a.attached, restLifeTimes = tslib_1.__rest(_a, ["ready", "attached"]);
return (0, page_mp_1.createComponent)(tslib_1.__assign({ methods: tslib_1.__assign({ subscribeMpMessage: function (messageTypes, haveToAccept, tip) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, subscribeMpMessage.call(this, messageTypes, haveToAccept, tip)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
} }, methods), lifetimes: tslib_1.__assign({ attached: function () {
var _this = this;
this.subscribed.push(this.features.token.subscribe(function () { return _this.refresh(); }));
attached && attached.call(this);
}, ready: function () {
if (relatedMessageTypes) {
var applicationId = this.features.application.getApplicationId();
var existedOnes = this.features.cache.get('messageTypeTemplateId', {
data: {
id: 1,
templateId: 1,
type: 1,
},
filter: {
type: {
$in: relatedMessageTypes,
},
applicationId: applicationId,
},
});
if (existedOnes.length === 0) {
this.features.cache.refresh('messageTypeTemplateId', {
data: {
id: 1,
templateId: 1,
type: 1,
},
filter: {
type: {
$in: relatedMessageTypes,
},
applicationId: applicationId,
},
});
}
}
ready && ready.call(this);
} }, restLifeTimes), wechatMp: wechatMp }, rest), features);
}
exports.createComponent = createComponent;