Add Query for productByPath (#117)

This commit is contained in:
Anders Gustafsson
2022-09-02 11:41:34 +02:00
committed by GitHub
parent f8f91247cf
commit eeb69fe5f0
4 changed files with 31 additions and 0 deletions
+12
View File
@@ -194,6 +194,18 @@ export class ProductAPI extends BaseSQLDataSource {
return res.find(Boolean);
}
async getProductByPath(path: string): Promise<Maybe<Product>> {
const query = sql.productByPath(path);
const res = await this.knex.raw(query).then((data) =>
data.rows.map((row) => {
const prod = this.createProductFromRow(row);
return prod;
}),
);
return res.find(Boolean);
}
async getDesignerProducts(designerId: number): Promise<Array<Product>> {
const query = sql.designerProducts();
+9
View File
@@ -119,6 +119,15 @@ export function product(id: number) {
);
}
export function productByPath(path: string) {
return (
baseQuery +
/* sql */ `
WHERE products.path = '${path}'
`
);
}
export function categoryProducts(categoryId: number) {
return (
baseQuery +
+9
View File
@@ -121,6 +121,14 @@ async function getProduct(_, { id }, { dataSources, auth }): Promise<Product> {
return (<ProductAPI>dataSources.productApi).getProduct(id);
}
async function getProductByPath(
_,
{ path },
{ dataSources },
): Promise<Product> {
return (<ProductAPI>dataSources.productApi).getProductByPath(path);
}
export const productTypeDefs = {
ProductBlacklist,
Product,
@@ -130,6 +138,7 @@ export const productTypeDefs = {
export const productQueryTypeDefs = {
products: getProductsResult,
product: getProduct,
productByPath: getProductByPath,
productsSearch: getProductsSearchResult,
};
+1
View File
@@ -25,6 +25,7 @@ type Query {
filter: ProductsFilterInput
): ProductsResult
product(id: Int!): Product
productByPath(path: String!): Product
productsSearch(q: String!): ProductsSearchResult
categories: [Category]
category(id: Int!): Category