UNPKG

eksi-sozluk

Version:
84 lines (72 loc) 1.77 kB
const { URLS } = require('../constants') /** * User favorite author collection. */ class UserFavoriteAuthorCollection { /** * User count. * * @type {number} */ userCount /** * User collection. * * @type {Array<(User|UserForMember)>} */ users = [] /** * Collection owner. * * @type {string} */ username /** * Create favorite author collection. * * @param {object} request Axios client. * @param {string} username Username. * @param {string} [cookies=null] Cookie string. */ constructor (request, username, cookies = null) { this._request = request this._cookies = cookies this.username = username } /** * Retrieve favorite users collection. * * @returns {Promise} Promise. */ retrieve () { return new Promise((resolve, reject) => { const requestOptions = { endpoint: URLS.USER_FAVORITE_AUTHORS, ajax: true, params: { nick: this.username } } this._request(requestOptions, $ => { $('div table tbody tr').each((i, elm) => { const username = $(elm) .find('td a') .text() .replace('takip et', '') .trim() // dynamically import // @see circular dependency issue const User = require('./User') const UserForMember = require('./UserForMember') const user = this._cookies ? new UserForMember(this._request, username, this._cookies) : new User(this._request, username) this.users.push(user) }) this.userCount = this.users.length resolve() }) }) } } module.exports = UserFavoriteAuthorCollection