const nazovPolozky = 'auth'

export default {
  jePouzivatelAutentifikovany () {
    return !!localStorage.getItem(nazovPolozky)
  },
  ulozitUdajePouzivatela (pouzivatel) {
    localStorage.setItem(nazovPolozky, JSON.stringify(pouzivatel))
  },
  udajePouzivatela () {
    if (this.jePouzivatelAutentifikovany) {
      return JSON.parse(localStorage.getItem(nazovPolozky))
    }

    return null
  },
  odstranitUdajePouzivatela () {
    localStorage.removeItem(nazovPolozky)
  },
  apiToken () {
    if (this.jePouzivatelAutentifikovany) {
      const usrData = JSON.parse(localStorage.getItem(nazovPolozky))

      if (!!usrData) {
        if (usrData.hasOwnProperty('api_token')) {
          return usrData.api_token
        }
      }
    }

    return null
  },
  rolePouzivatela () {
    if (this.jePouzivatelAutentifikovany()) {
      return this.udajePouzivatela().roles.map((rola) => {
        return rola.name
      })
    }

    return []
  },
  opravneniaPouzivatela () {
    if (this.jePouzivatelAutentifikovany()) {
      return this.udajePouzivatela().permissions.map((opravnenie) => {
        return opravnenie.name
      })
    }

    return []
  }
}
