useAuthApi.ts 604 Bytes
import type { LoginResponse, MeResponse } from '~/types'
import { createSharedComposable } from '@vueuse/core'

const _useAuthApi = () => {
  const api = useApiGateway()

  const login = (credentials: { username: string, password: string }) => {
    return api.request<LoginResponse>('/api/auth/login', {
      method: 'POST',
      body: credentials,
      auth: false
    })
  }

  const me = () => {
    return api.request<MeResponse>('/api/auth/me', {
      method: 'GET',
      auth: true
    })
  }

  return {
    login,
    me
  }
}

export const useAuthApi = createSharedComposable(_useAuthApi)