Home Reference Source

js/models/Request/FollowedUser.js

import { HTTPMethod } from '~/models/Request/Request';
import PagedRequest from '~/models/Request/PagedRequest';
import User from '~/models/User';

/**
 * @typedef {Object} FollowedType
 * @property {Object} following
 * @property {Object} followers
 */
export const FollowedType = {
    following: 'following',
    followers: 'followers'
};

/**
 * Gets both **followed and following** users.
 * @extends {Request}
 */
export default class FollowedUser extends PagedRequest {
    /** @override */
    format(json) {
        return User.fromJSON(json);
    }

    /**
     * **Requires** authorization
     * @param {User} user - The user to lookup
     * @param {FollowedType} followedType - The type of following
     */
    constructor(user, followedType) {
        super({
            path: `/user/${followedType}/${user.id}`,
            method: HTTPMethod.GET
        });

        /**
         * The user target of the request
         * @type {User}
         */
        this.user = user;
    }
}