@arc-publishing/sdk-amp
Version:
Arc AMP SDK to work with Google AMP Pages
54 lines • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var amp_1 = tslib_1.__importDefault(require("./amp"));
var APIErrorResponse_1 = require("@arc-publishing/sdk-subs-core/lib/utils/APIErrorResponse");
var constants_1 = require("./constants");
function checkAMPReaderID(readerId) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var error, existingReaderId, isLoggedIn, ampReaderId, allUserReaderIds, ids, resp;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (typeof window === 'undefined') {
return [2, ''];
}
if (!amp_1.default._Identity) {
error = "".concat(constants_1.logPrefix, " no Identity provided in AMP.options");
console.error(error);
throw new Error(error);
}
existingReaderId = amp_1.default.ampReaderId;
return [4, amp_1.default._Identity.isLoggedIn()];
case 1:
isLoggedIn = _a.sent();
ampReaderId = readerId || '';
if (ampReaderId && (!existingReaderId || existingReaderId !== ampReaderId)) {
amp_1.default.ampReaderId = ampReaderId;
}
if (amp_1.default.ampReaderId) {
ampReaderId = amp_1.default.ampReaderId;
}
if (!isLoggedIn) return [3, 4];
allUserReaderIds = [];
return [4, amp_1.default.getAMPReaderIDs()];
case 2:
ids = _a.sent();
if (Array.isArray(ids)) {
allUserReaderIds = ids;
}
if (!(ampReaderId && !allUserReaderIds.includes(ampReaderId))) return [3, 4];
return [4, amp_1.default.saveAMPReaderID(ampReaderId)];
case 3:
resp = _a.sent();
if ((0, APIErrorResponse_1.isAPIErrorResponse)(resp)) {
throw resp;
}
_a.label = 4;
case 4: return [2, ampReaderId];
}
});
});
}
exports.default = checkAMPReaderID;
//# sourceMappingURL=checkAMPReaderID.js.map