Verified Commit 58a096db authored by Jakob Moser's avatar Jakob Moser
Browse files

Add Song model type

parent ef6e52c0
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
import { Base } from "./Base.js"
import { getFavoriteIds, addFavorite, removeFavorite } from "./favorites.js"

export default class Song extends Base {
    static async forceLoad() {
        return await m.request({ url: "/songs.json" })
    }

    get favorite() {
        return getFavoriteIds().has(this.id || this.uuid)
    }

    set favorite(isFavorite) {
        if (isFavorite) {
            addFavorite(this.id || this.uuid)
        } else {
            removeFavorite(this.id || this.uuid)
        }
    }

    toggleFavorite() {
        this.favorite = !this.favorite
    }
}