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 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 { export class Config {
private config: SwellConfig private config: SwellConfig
@ -49,6 +52,7 @@ const config = new Config({
apiToken: API_TOKEN!, apiToken: API_TOKEN!,
cartCookie: SHOPIFY_CHECKOUT_ID_COOKIE, cartCookie: SHOPIFY_CHECKOUT_ID_COOKIE,
cartCookieMaxAge: SHOPIFY_COOKIE_EXPIRE, cartCookieMaxAge: SHOPIFY_COOKIE_EXPIRE,
fetchSwell: fetchSwellApi,
fetch: fetchGraphqlApi, fetch: fetchGraphqlApi,
customerCookie: SHOPIFY_CUSTOMER_TOKEN_COOKIE, 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 { SwellConfig } from '../api'
import { CollectionEdge } from '../schema'
import getSiteCollectionsQuery from './queries/get-all-collections-query'
export type Category = { export type Category = {
entityId: string id: string
name: string name: string
path: string slug: string
} }
const getCategories = async (config: SwellConfig): Promise<Category[]> => { const getCategories = async (config: SwellConfig): Promise<Category[]> => {
const { data } = await config.fetch(getSiteCollectionsQuery, { const data = await config.fetchSwell('categories', 'get')
variables: {
first: 250,
},
})
return ( return (
data.collections?.edges?.map( data.results.map(({ id: entityId, name, slug }: Category) => ({
({ node: { id: entityId, title: name, handle } }: CollectionEdge) => ({ entityId,
entityId, name,
name, path: `/${slug}`,
path: `/${handle}`, })) ?? []
})
) ?? []
) )
} }