changed list products so it does not rely on unreleased version of medusa-js

This commit is contained in:
Kasper 2021-09-14 18:55:07 +02:00
parent 4a48e40aca
commit 739e2730e6
4 changed files with 35 additions and 17 deletions

View File

@ -20,8 +20,8 @@ export default function getAllProductPathsOperation({
const results = await config.fetch('products', 'list', {}) const results = await config.fetch('products', 'list', {})
const productHandles = results.data?.products const productHandles = results.products
? results.data.products.map(({ handle }: MedusaProduct) => ({ ? results.products.map(({ handle }: MedusaProduct) => ({
path: `/${handle}`, path: `/${handle}`,
})) }))
: [] : []

View File

@ -27,8 +27,8 @@ export default function getAllProductsOperation({
query ? { query: query } : {} query ? { query: query } : {}
) )
const products: Product[] = results.data?.products const products: Product[] = results.products
? results.data.products.map((product: MedusaProduct) => ? results.products.map((product: MedusaProduct) =>
normalizeProduct(product) normalizeProduct(product)
) )
: [] : []

View File

@ -10,16 +10,17 @@ export const handler: SWRHook<any> = {
method: 'list', method: 'list',
}, },
async fetcher({ input, options, fetch }) { async fetcher({ input, options, fetch }) {
const { products } = await fetch({ // NOOP
...options, // const results = await fetch({
variables: { query: null }, // ...options,
}) // variables: { query: null },
// })
// console.warn(results)
return { return {
products: products products: [],
? products.map((product: MedusaProduct) => normalizeProduct(product)) found: 0,
: [],
found: products.length,
} }
}, },
useHook: useHook:

View File

@ -1,6 +1,8 @@
import { CommerceError } from '@commerce/utils/errors' import { CommerceError } from '@commerce/utils/errors'
import { MEDUSA_PUBLIC_STORE_URL } from '@framework/const' import { MEDUSA_PUBLIC_STORE_URL } from '@framework/const'
import medusa from '../medusa' import medusa from '../medusa'
import fetch from 'node-fetch'
import axios from 'axios'
export const callMedusa = async ( export const callMedusa = async (
method: string, method: string,
@ -313,13 +315,28 @@ export const callMedusa = async (
return await medusa.products.variants.retrieve(variant_id) return await medusa.products.variants.retrieve(variant_id)
} else if (method === 'list') { } else if (method === 'list') {
const { query } = variables const { query } = variables
let path = '/store/products'
return await medusa.products.list( if (query) {
query && { const formattedQuery = {
limit: query.limit || null, offset: query.offset || 0,
offset: query.offset || null, limit: query.limit || 100,
} }
)
const queryString = Object.entries(formattedQuery).map(
([key, value]) => {
return `${key}=${value}`
}
)
path = `/store/products?${queryString.join('&')}`
}
const res = await fetch(`${MEDUSA_PUBLIC_STORE_URL}${path}`, {
method: 'GET',
})
return await res.json()
} else if (method === 'retrieve') { } else if (method === 'retrieve') {
const { product_id } = variables const { product_id } = variables