4
0
forked from crowetic/commerce

update get categories hook

This commit is contained in:
Greg Hoskin 2021-03-29 17:05:20 -06:00
parent ee1d8ed461
commit e4c1050880
3 changed files with 22 additions and 18 deletions

View File

@ -21,8 +21,11 @@ if (!API_TOKEN) {
}
import fetchGraphqlApi from './utils/fetch-graphql-api'
import fetchSwellApi from './utils/fetch-swell-api'
export interface SwellConfig extends CommerceAPIConfig {}
export interface SwellConfig extends CommerceAPIConfig {
fetchSwell: any
}
export class Config {
private config: SwellConfig
@ -49,6 +52,7 @@ const config = new Config({
apiToken: API_TOKEN!,
cartCookie: SHOPIFY_CHECKOUT_ID_COOKIE,
cartCookieMaxAge: SHOPIFY_COOKIE_EXPIRE,
fetchSwell: fetchSwellApi,
fetch: fetchGraphqlApi,
customerCookie: SHOPIFY_CUSTOMER_TOKEN_COOKIE,
})

View File

@ -0,0 +1,9 @@
import { swellConfig } from '../../index'
const fetchSwellApi = async (query: string, method: string) => {
const { swell } = swellConfig
const res = await swell[query][method]()
return res
}
export default fetchSwellApi

View File

@ -1,28 +1,19 @@
import { SwellConfig } from '../api'
import { CollectionEdge } from '../schema'
import getSiteCollectionsQuery from './queries/get-all-collections-query'
export type Category = {
entityId: string
id: string
name: string
path: string
slug: string
}
const getCategories = async (config: SwellConfig): Promise<Category[]> => {
const { data } = await config.fetch(getSiteCollectionsQuery, {
variables: {
first: 250,
},
})
const data = await config.fetchSwell('categories', 'get')
return (
data.collections?.edges?.map(
({ node: { id: entityId, title: name, handle } }: CollectionEdge) => ({
entityId,
name,
path: `/${handle}`,
})
) ?? []
data.results.map(({ id: entityId, name, slug }: Category) => ({
entityId,
name,
path: `/${slug}`,
})) ?? []
)
}