1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
'use strict';
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/*
* Nexmo Client SDK
*
* Copyright (c) Nexmo Inc.
*/
const page_1 = __importDefault(require("./page"));
const member_1 = __importDefault(require("../member"));
/**
* A Members Page
*
* @class MembersPage
* @param {Map} items map of members fetched in the paginated query
* @extends Page
*/
class MembersPage extends page_1.default {
constructor(params) {
super(params);
this.conversation = params.conversation;
this.items = new Map();
// Iterate and create the conversations if not existent
params.items.forEach((member) => {
this.items.set(member.id, new member_1.default(this.conversation, member));
});
}
/**
* Fetch the previous page if exists
* @returns {Promise<Page>}
* @example <caption>Fetch the previous page if exists</caption>
* currentMembersPage.getPrev().then((prevMembersPage) => {
* console.log("previous members page ", prevMembersPage);
* }).catch((error) => {
* console.error("error getting previous members page ", error);
* });
*/
getPrev() {
if (!this.hasPrev())
return this._getError();
return this.conversation.getMembers(this._getConfig(this.cursor.prev));
}
/**
* Fetch the next page if exists
* @returns {Promise<Page>}
* @example <caption>Fetch the next page if exists</caption>
* currentMembersPage.getNext().then((nextMembersPage) => {
* console.log("next members page ", nextMembersPage);
* }).catch((error) => {
* console.error("error getting next members page ", error);
* });
*/
getNext() {
if (!this.hasNext())
return this._getError();
return this.conversation.getMembers(this._getConfig(this.cursor.next));
}
}
exports.default = MembersPage;
module.exports = MembersPage;