@@ -0,0 +1,49 @@
|
||||
// The handlers of the module's procedures: each takes the service its kind may use and calls one use
|
||||
// case. No rule lives here.
|
||||
|
||||
import { implement } from "@conusai-kit/core"
|
||||
import { importApply, importList, productGet, productList, productSearch } from "../contract/index.js"
|
||||
import { applyImport, listImports, listProducts, searchProducts } from "../core/catalog.js"
|
||||
import { catalogServiceOf } from "./service.js"
|
||||
|
||||
export const productListImpl = implement(productList, ({ input, ctx }) =>
|
||||
listProducts(catalogServiceOf(ctx.container, ctx.kind), {
|
||||
...(input.after === undefined ? {} : { after: input.after }),
|
||||
...(input.limit === undefined ? {} : { limit: input.limit }),
|
||||
}),
|
||||
)
|
||||
|
||||
export const productSearchImpl = implement(productSearch, ({ input, ctx }) =>
|
||||
searchProducts(catalogServiceOf(ctx.container, ctx.kind), {
|
||||
q: input.q,
|
||||
...(input.by === undefined ? {} : { by: input.by }),
|
||||
...(input.after === undefined ? {} : { after: input.after }),
|
||||
...(input.limit === undefined ? {} : { limit: input.limit }),
|
||||
}),
|
||||
)
|
||||
|
||||
export const productGetImpl = implement(productGet, ({ input, ctx }) =>
|
||||
catalogServiceOf(ctx.container, ctx.kind).getProduct(input.productId),
|
||||
)
|
||||
|
||||
export const importListImpl = implement(importList, ({ input, ctx }) =>
|
||||
listImports(catalogServiceOf(ctx.container, ctx.kind), {
|
||||
...(input.after === undefined ? {} : { after: input.after }),
|
||||
...(input.limit === undefined ? {} : { limit: input.limit }),
|
||||
}),
|
||||
)
|
||||
|
||||
export const importApplyImpl = implement(importApply, ({ input, ctx }) =>
|
||||
applyImport(catalogServiceOf(ctx.container, "effect"), ctx.scope, {
|
||||
fileHash: input.fileHash,
|
||||
sourceName: input.sourceName,
|
||||
format: input.format,
|
||||
chunk: input.chunk,
|
||||
finalChunk: input.finalChunk,
|
||||
...(input.revision === undefined ? {} : { revision: input.revision }),
|
||||
rows: input.rows,
|
||||
requestId: input.requestId,
|
||||
}),
|
||||
)
|
||||
|
||||
export const CATALOG_PROCEDURES = [productListImpl, productSearchImpl, productGetImpl, importListImpl, importApplyImpl]
|
||||
Reference in New Issue
Block a user