Uptate customer fetch types

This commit is contained in:
cond0r 2021-04-29 21:58:46 +03:00
parent cdf8005c21
commit 1fac8e187d
3 changed files with 22 additions and 13 deletions

View File

@ -1,6 +1,7 @@
import { getConfig, ShopifyConfig } from '../api' import { getConfig, ShopifyConfig } from '../api'
import getCustomerIdQuery from '../utils/queries/get-customer-id-query' import getCustomerIdQuery from '../utils/queries/get-customer-id-query'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import { GetCustomerIdQuery } from '../schema'
async function getCustomerId({ async function getCustomerId({
customerToken: customerAccesToken, customerToken: customerAccesToken,
@ -8,17 +9,19 @@ async function getCustomerId({
}: { }: {
customerToken: string customerToken: string
config?: ShopifyConfig config?: ShopifyConfig
}): Promise<number | undefined> { }): Promise<string | undefined> {
config = getConfig(config) config = getConfig(config)
const { data } = await config.fetch(getCustomerIdQuery, { const {
data: { customer },
} = await config.fetch<GetCustomerIdQuery>(getCustomerIdQuery, {
variables: { variables: {
customerAccesToken: customerAccesToken:
customerAccesToken || Cookies.get(config.customerCookie), customerAccesToken || Cookies.get(config.customerCookie),
}, },
}) })
return data.customer?.id return customer?.id
} }
export default getCustomerId export default getCustomerId

View File

@ -10,11 +10,15 @@ export const handler: SWRHook<Customer | null> = {
query: getCustomerQuery, query: getCustomerQuery,
}, },
async fetcher({ options, fetch }) { async fetcher({ options, fetch }) {
const data = await fetch<any | null>({ const customerAccessToken = getCustomerToken()
...options, if (customerAccessToken) {
variables: { customerAccessToken: getCustomerToken() }, const data = await fetch({
}) ...options,
return data.customer ?? null variables: { customerAccessToken: getCustomerToken() },
})
return data.customer
}
return null
}, },
useHook: ({ useData }) => (input) => { useHook: ({ useData }) => (input) => {
return useData({ return useData({

View File

@ -1,4 +1,4 @@
import { CollectionEdge } from '../schema' import { GetSiteCollectionsQuery } from '../schema'
import { getConfig, ShopifyConfig } from '../api' import { getConfig, ShopifyConfig } from '../api'
import getAllCollectionsQuery from '../utils/queries/get-all-collections-query' import getAllCollectionsQuery from '../utils/queries/get-all-collections-query'
@ -10,11 +10,13 @@ const getAllCollections = async (options?: {
let { config, variables = { first: 250 } } = options ?? {} let { config, variables = { first: 250 } } = options ?? {}
config = getConfig(config) config = getConfig(config)
const { data } = await config.fetch(getAllCollectionsQuery, { variables }) const { data } = await config.fetch<GetSiteCollectionsQuery>(
const edges = data.collections?.edges ?? [] getAllCollectionsQuery,
{ variables }
)
const categories = edges.map( const categories = data.collections.edges.map(
({ node: { id: entityId, title: name, handle } }: CollectionEdge) => ({ ({ node: { id: entityId, title: name, handle } }) => ({
entityId, entityId,
name, name,
path: `/${handle}`, path: `/${handle}`,