commerce/framework/saleor/utils/handle-login.ts
2021-06-09 17:02:11 +02:00

39 lines
930 B
TypeScript

import { FetcherOptions } from '@commerce/utils/types'
import { CreateToken, Mutation, MutationTokenCreateArgs } from '../schema'
import { setToken, setCSRFToken } from './customer-token'
import { customerAccessTokenCreateMutation } from './mutations'
import throwUserErrors from './throw-user-errors'
const handleLogin = (data: CreateToken) => {
throwUserErrors(data?.errors)
const token = data?.token
if (token) {
setToken(token)
setCSRFToken(token)
}
return token
}
export const handleAutomaticLogin = async (
fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>,
input: MutationTokenCreateArgs
) => {
try {
const { tokenCreate } = await fetch<
Mutation,
MutationTokenCreateArgs
>({
query: customerAccessTokenCreateMutation,
variables: { ...input },
})
handleLogin(tokenCreate!)
} catch (error) {
//
}
}
export default handleLogin