forked from crowetic/commerce
update get categories hook
This commit is contained in:
parent
ee1d8ed461
commit
e4c1050880
@ -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,
|
||||
})
|
||||
|
9
framework/swell/api/utils/fetch-swell-api.ts
Normal file
9
framework/swell/api/utils/fetch-swell-api.ts
Normal 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
|
@ -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}`,
|
||||
})) ?? []
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user