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 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,
|
||||||
})
|
})
|
||||||
|
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 { 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}`,
|
})) ?? []
|
||||||
})
|
|
||||||
) ?? []
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user