(login) save login

This commit is contained in:
2021-03-17 23:25:58 +01:00
parent 6f5ea41824
commit 2faabb6c0e
13 changed files with 255 additions and 29 deletions

View File

@@ -0,0 +1,52 @@
import { computed, ref } from 'vue'
import { DataType } from '@/data/DataType.enum'
import { GithubAccessToken } from '@/data/models/GithubAccessToken'
import { data } from '@/data/data'
const personalAccessTokenId = 'PAT'
const username = ref<string | null>(null)
const accessToken = ref<string | null>(null)
let init = true
export const useGitHubLogin = () => {
const getAccessToken = async () => {
const response = await data.get<
DataType.GithubAccessToken,
GithubAccessToken
>(data.generateId(DataType.GithubAccessToken, personalAccessTokenId))
username.value = response?.username || ''
accessToken.value = response?.personalAccessToken || ''
return response
}
if (init) {
init = false
getAccessToken()
}
const saveCredentials = async (username: string, token: string) => {
const actualPAT = await getAccessToken()
const personalAccessToken: GithubAccessToken = {
...actualPAT,
_id: data.generateId(DataType.GithubAccessToken, personalAccessTokenId),
$type: DataType.GithubAccessToken,
username,
personalAccessToken: token
}
await data.add(personalAccessToken)
getAccessToken()
}
return {
isLogged: !!username.value && !!accessToken.value,
isReady: computed(() => accessToken.value !== null),
username,
accessToken,
saveCredentials
}
}