import axios from 'axios'
import { getToken } from './KeyCloakService'
import { useErrorStore } from '@/stores/error'

const instance = axios.create()

instance.interceptors.request.use(async (config) => {
  config.headers.Authorization = `Bearer ${await getToken()}`
  return config
})

instance.interceptors.response.use(
  (res) => res,
  (err) => {
    const error = useErrorStore()
    const status = err.response.status
    const data = err.response.data

    error.title = 'เกิดข้อผิดพลาด'

    if (status === 500) {
      error.msg = 'เกิดข้อผิดพลาด ไม่สามารถดำเนินการต่อได้ กรุณาลองใหม่อีกครั้ง'
    } else {
      error.msg = data.message
    }

    error.show()
  },
)

export default instance
