🐛 (authentication) simplify refres…

This commit is contained in:
Julien Calixte
2021-05-27 13:33:31 +02:00
parent 5f272a44bb
commit 9ff73f09ac

View File

@@ -1,37 +1,10 @@
import { useGitHubLogin } from '@/hooks/useGitHubLogin.hook'
import { needToRefreshToken, refreshToken } from '@/modules/user/service/signIn'
import { getAccessToken } from '@/modules/user/service/signIn'
import { Octokit } from '@octokit/rest'
let refreshingToken = false
let octokit = new Octokit()
const sleep = async (ms: number) => {
return new Promise((resolve) => setTimeout(resolve, ms))
}
export const getOctokit = async (): Promise<Octokit> => {
const { accessToken } = useGitHubLogin()
octokit = new Octokit({
auth: accessToken.value
const response = await getAccessToken()
return new Octokit({
auth: response?.token ?? ''
})
if (refreshingToken) {
await sleep(100)
return getOctokit()
}
if (!refreshingToken) {
refreshingToken = true
if (await needToRefreshToken()) {
const accessToken = await refreshToken()
if (accessToken) {
octokit = new Octokit({
auth: accessToken.token
})
}
}
refreshingToken = false
}
return octokit
}