<script>
import userService from '@/utils/user-utils'
import EventBus from '@/utils/eventBus'

export default {
  data() {
    return {
      content: '',
      isLoggedIn: false,
      isAdmin: false,
      isLoading: true
    }
  },
  methods: {
    runVerification() {
      this.isLoading = true
      const token = localStorage.getItem('x-access-token')
      const currentUsername = localStorage.getItem('username')

      if (token) {
        userService.getAdminBoard().then((response) => {
          const admins = response.data
          // zjišťuje jestli se jedná o admina, pokud ho nalezne vrací true, pokud ne vrací false
          this.isAdmin = admins.some((admin) => admin.username === currentUsername)
          this.isLoggedIn = true
          this.content = response.data

          if (!this.isAdmin) {
            return userService
              .getUserBoard()
              .then((response) => {
                if (response) {
                  this.content = response.data
                }
                this.isLoading = false
              })
              .catch((error) => {
                this.isAdmin = false
                this.isLoggedIn = false
                this.isLoading = false
                console.error('Error:', error.response?.data || error.message)
                this.content = error.response?.data || error.message || 'An error occurred.'
              })
          }
          this.isLoading = false
        })
      } else {
        userService.getPublicContent().then(
          (response) => {
            this.content = response.data
            this.isLoading = false
          },
          (error) => {
            this.content =
              (error.response && error.response.data) || error.messsage || error.toString()
            this.isLoading = false
          }
        )
      }
    }
  },
  created() {
    EventBus.addEventListener('user-logged-in', this.runVerification)
  },
  mounted() {
    this.runVerification()
  },
  beforeUnmount() {
    EventBus.removeEventListener('user-logged-in', this.runVerification)
  }
}
</script>

<template>
  <article v-if="isLoading"></article>
  <article v-else-if="!isLoggedIn">
    <div>Vítejte na webové stránce aplikace, která slouží jako systém pro plánování služeb!</div>
    <div>Pokud ještě nemáte vytvořený svůj účet tak se zaregistrujte pomocí tlačítka Register.</div>
    <div>Případně se přihlaste skrze tlačítko Login.</div>
  </article>
  <article v-else-if="isLoggedIn && !isAdmin">
    <h3>{{ content }}</h3>
  </article>
  <article v-if="isAdmin">
    <h3>Profil admin uživatele.</h3>
  </article>
</template>
