models/communities/FollowQuery.js

import UserIdList from '../UserIdList';
import CommunitiesIds from './CommunitiesIds';

export default class FollowQuery {
    /**
     * Creates a FollowQuery
     *
     * @constructor FollowQuery
     * @param {CommunitiesIds} ids - Entity IDs.
     */
    constructor(ids) {
        this.ids = ids;
    }

    /**
     * Follow topics from list.
     *
     * @memberof FollowQuery
     * @param {string[]} ids - List of topic IDs.
     * @return {FollowQuery} New query.
     */
    static topics(ids) {
        return new FollowQuery(CommunitiesIds.topics(ids));
    }

    /**
     * Follow users from list.
     *
     * @memberof FollowQuery
     * @param {UserIdList} ids - List of user IDs.
     * @return {FollowQuery} New query.
     */
    static users(ids) {
        return new FollowQuery(CommunitiesIds.users(ids));
    }

    /**
     * Follow groups from list.
     *
     * @memberof FollowQuery
     * @param {string[]} ids - List of group IDs.
     * @return {FollowQuery} New query.
     */
    static groups(ids) {
        return new FollowQuery(CommunitiesIds.groups(ids));
    }

    /**
     * Follow tags from list.
     *
     * @memberof FollowQuery
     * @param {string[]} ids - List of tags.
     * @return {FollowQuery} New query.
     */
     static tags(ids) {
        return new FollowQuery(CommunitiesIds.tags(ids));
    }

    /**
     * Follow labels from list.
     *
     * @memberof FollowQuery
     * @param {string[]} ids - List of labels.
     * @return {FollowQuery} New query.
     */
     static labels(ids) {
        return new FollowQuery(CommunitiesIds.labels(ids));
    }
}