Home Reference Source Repository

src/entities/UserEntity.js

'use strict';

/**
 * Properties and methods of the User Entity
 *
 * @see https://developer.spotify.com/web-api/object-model/#user-object-private
 */
class UserEntity {

    /**
     * Constructor
     * 
     * @param {Object} data User object
     */
    constructor(data = {}) {
        this._id = data.id;
        this._birthdate = data.birthdate;
        this._country = data.country;
        this._display_name = data.display_name;
        this._email = data.email;
        this._external_urls = data.external_urls;
        this._followers = data.followers;
        this._href = data.href;
        this._images = data.images;
        this._product = data.product;
        this._type = 'user';
        this._uri = data.uri;
    }

    /**
     * @return {String} User birthdate
     */
    get birthdate() {
        return this._birthdate;
    }

    /**
     * @param {Object} data User object
     */
    set birthdate(data) {
        this._birthdate = data;
    }

    /**
     * @return {String} User country
     */
    get country() {
        return this._country;
    }

    /**
     * @param {Object} data User object
     */
    set country(data) {
        this._country = data;
    }

    /**
     * @return {String} User display_email
     */
    get display_email() {
        return this._display_email;
    }

    /**
     * @param {Object} data User object
     */
    set display_email(data) {
        this._display_email = data;
    }

    /**
     * @return {String} User name
     */
    get name() {
        return this._name;
    }

    /**
     * @param {Object} data User object
     */
    set name(data) {
        this._name = data;
    }

    /**
     * @return {String} User external_urls
     */
    get external_urls() {
        return this._external_urls;
    }

    /**
     * @param {Object} data User object
     */
    set external_urls(data) {
        this._external_urls = data;
    }

    /**
     * @return {String} User followers
     */
    get followers() {
        return this._followers;
    }

    /**
     * @param {Object} data User object
     */
    set followers(data) {
        this._followers = data;
    }

    /**
     * @return {String} User href
     */
    get href() {
        return this._href;
    }

    /**
     * @param {Object} data User object
     */
    set href(data) {
        this._href = data;
    }

    /**
     * @return {String} User images
     */
    get images() {
        return this._images;
    }

    /**
     * @param {Object} data User object
     */
    set images(data) {
        this._images = data;
    }

    /**
     * @return {String} User product
     */
    get product() {
        return this._product;
    }

    /**
     * @param {Object} data User object
     */
    set product(data) {
        this._product = data;
    }

    /**
     * @return {String} Entity type
     */
    get type() {
        return this._type;
    }

    /**
     * @return {String} User uri
     */
    get uri() {
        return this._uri;
    }

    /**
     * @param {Object} data User object
     */
    set uri(data) {
        this._uri = data;
    }

    /**
     * @return {User} Track id
     */
    get id() {
        return this._id;
    }

    /**
     * @param {Object} data User object
     */
    set id(data) {
        this._id = data;
    }
}

/**
 * Exports the UserEntity class.
 */
export default UserEntity;