Home Reference Source Repository

src/entities/AlbumEntity.js

'use strict';

/**
 * Properties and methods of the Album Entity
 *
 * @see https://developer.spotify.com/web-api/object-model/#album-object-full
 */
class AlbumEntity {

    /**
     * Constructor
     * 
     * @param {Object} data Album object
     */
    constructor(data = {}) {
        this._album_type = data.album_type;
        this._artists = data.artists;
        this._available_markets = data.available_markets;
        this._copyrights = data.copyrights;
        this._external_ids = data.external_ids;
        this._external_urls = data.external_urls;
        this._genres = data.genres;
        this._href = data.href;
        this._id = data.id;
        this._images = data.images;
        this._name = data.name;
        this._popularity = data.popularity;
        this._release_date = data.release_date;
        this._release_date_precision = data.release_date_precision;
        this._tracks = data.tracks;
        this._type = data.type;
        this._uri = data.uri;
    }
    
    /**
     * @param {Object} data Album object
     */
    set album_type(data) {
        this._album_type = data.album_type
    }

    /**
     * @return {String} Album type
     */
    get album_type() {
        return this._album_type;
    }
    
    /**
     * @param {Object} data Album object
     */
    set artists(data) {
        this._artists = data.artists
    }

    /**
     * @return {String} Album artists
     */
    get artists() {
        return this._artists;
    }
    
    /**
     * @param {Object} data Album object
     */
    set available_markets(data) {
        this._available_markets = data.available_markets
    }

    /**
     * @return {String} Album available_markets
     */
    get available_markets() {
        return this._available_markets;
    }
    
    /**
     * @param {Object} data Album object
     */
    set copyrights(data) {
        this._copyrights = data.copyrights
    }

    /**
     * @return {String} Album copyrights
     */
    get copyrights() {
        return this._copyrights;
    }
    
    /**
     * @param {Object} data Album object
     */
    set external_ids(data) {
        this._external_ids = data.external_ids
    }

    /**
     * @return {String} Album external_ids
     */
    get external_ids() {
        return this._external_ids;
    }
    
    /**
     * @param {Object} data Album object
     */
    set external_urls(data) {
        this._external_urls = data.external_urls
    }

    /**
     * @return {String} Album external_urls
     */
    get external_urls() {
        return this._external_urls;
    }
    
    /**
     * @param {Object} data Album object
     */
    set genres(data) {
        this._genres = data.genres
    }

    /**
     * @return {String} Album genres
     */
    get genres() {
        return this._genres;
    }
    
    /**
     * @param {Object} data Album object
     */
    set href(data) {
        this._href = data.href
    }

    /**
     * @return {String} Album href
     */
    get href() {
        return this._href;
    }
    
    /**
     * @param {Object} data Album object
     */
    set id(data) {
        this._id = data.id
    }

    /**
     * @return {String} Album id
     */
    get id() {
        return this._id;
    }
    
    /**
     * @param {Object} data Album object
     */
    set images(data) {
        this._images = data.images
    }

    /**
     * @return {String} Album images
     */
    get images() {
        return this._images;
    }
    
    /**
     * @param {Object} data Album object
     */
    set name(data) {
        this._name = data.name
    }

    /**
     * @return {String} Album name
     */
    get name() {
        return this._name;
    }
    
    /**
     * @param {Object} data Album object
     */
    set popularity(data) {
        this._popularity = data.popularity
    }

    /**
     * @return {String} Album popularity
     */
    get popularity() {
        return this._popularity;
    }
    
    /**
     * @param {Object} data Album object
     */
    set release_date(data) {
        this._release_date = data.release_date
    }

    /**
     * @return {String} Album release_date
     */
    get release_date() {
        return this._release_date;
    }
    
    /**
     * @param {Object} data Album object
     */
    set release_date_precision(data) {
        this._release_date_precision = data.release_date_precision
    }

    /**
     * @return {String} Album release_date_precision
     */
    get release_date_precision() {
        return this._release_date_precision;
    }
    
    /**
     * @param {Object} data Album object
     */
    set tracks(data) {
        this._tracks = data.tracks
    }

    /**
     * @return {String} Album tracks
     */
    get tracks() {
        return this._tracks;
    }
    
    /**
     * @param {Object} data Album object
     */
    set type(data) {
        this._type = data.type
    }

    /**
     * @return {String} Entity type
     */
    get type() {
        return this._type;
    }
    
    /**
     * @param {Object} data Album object
     */
    set uri(data) {
        this._uri = data.uri
    }

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

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