import axios from '../../../plugins/axios'

export function login() {
  axios({
    method: 'get',
    url: '/auth/login'
  })
    .then(response => {
      if (!response.data.token) {
        window.location = 'http://localhost:8000/api/auth/login'
      } else {
        localStorage.setItem('stored_token', response.data.token);
        location.reload()
        // setLastConnection().then(() => {
        // })
      }
    })
}

export function logout(context, fullLogout) {
  setLastConnection().then(() => {
    localStorage.removeItem('stored_token');
    if (fullLogout) {
      window.location = 'https://tequila.epfl.ch/logout'
    }
    location.reload()
  })
}

export function getUserData(context) {
  return new Promise((resolve, reject) => {
    axios({
      method: 'get',
      url: '/user'
    })
      .then(response => {
        context.commit('setUserData', response.data)
        resolve(response.data)
      })
      .catch(err => {
        reject(err)
      })
  })
}

export function getUserPermittedJobs(context) {
  axios({
    method: 'get',
    url: '/user/permittedjobs'
  })
    .then(response => {
      context.commit('setPermittedJobs', response.data)
    })
}

export function getLastConnection(context) {
  axios({
    method: 'get',
    url: '/user/connection'
  })
    .then(response => {
      context.commit('setLastConnection', response.data.last_connection)
    })
}

export function setLastConnection() {
  return new Promise((resolve) => {
    axios({
      method: 'patch',
      url: '/user/connection'
    })
      .then(resolve())
  })
}