GetProductReviews
Implements GetProductReviews Unified Method.
Source
import type { GetProductReviewsArgs } from "@alokai/connect";
import { getNormalizers } from "@alokai/connect/integration-kit";
import type { getReview } from "@vsf-enterprise/commercetools-api";
import type { Review } from "@vsf-enterprise/commercetools-types";
import { defineApi } from "@vsf-enterprise/unified-api-commercetools";
type GetReviewParams = Parameters<typeof getReview>[1];
export const getProductReviews = defineApi.getProductReviews(async (context, args) => {
const { api } = await context.getApiClient();
const response = await api.getReview(toGetReviewParams(args));
const { normalizePagination, normalizeProductReview } = getNormalizers(context);
return {
pagination: normalizePagination(response.reviews),
reviews: response.reviews.results.map((review: Review) => normalizeProductReview(review)),
};
});
function toGetReviewParams(args: GetProductReviewsArgs): GetReviewParams {
const offset =
args.pageSize && args.currentPage ? (args.currentPage - 1) * args.pageSize : undefined;
return {
limit: args.pageSize,
offset,
productId: args.productId,
};
}