@omnixdp/ratings-and-reviews
v0.3.0
Published
TypeScript client for the Omni xDP Ratings and Reviews API.
Downloads
270
Readme
@omnixdp/ratings-and-reviews
TypeScript SDK for the Omni xDP Ratings and Reviews API.
The package wraps /v1/ratings-and-reviews with OAuth client_credentials helpers, request builders, response parsing, and a small fetch client that works in browsers, Next.js Client Components, and React Server Components.
Install
npm install @omnixdp/ratings-and-reviewsCreate a client
import { createRatingsReviewsClient } from "@omnixdp/ratings-and-reviews";
const reviews = createRatingsReviewsClient({
baseUrl: "https://api.example.com",
clientCredentials: {
clientId: process.env.OMNIXDP_RR_CLIENT_ID!,
clientSecret: process.env.OMNIXDP_RR_CLIENT_SECRET!
}
});Next.js usage
Keep API client secrets on the server when possible.
import { createRatingsReviewsClient } from "@omnixdp/ratings-and-reviews";
const reviews = createRatingsReviewsClient({
baseUrl: process.env.OMNIXDP_API_URL!,
clientCredentials: {
clientId: process.env.OMNIXDP_RR_CLIENT_ID!,
clientSecret: process.env.OMNIXDP_RR_CLIENT_SECRET!
}
});
export default async function ReviewsPage() {
const list = await reviews.listReviews({
spaceId: "space_1",
dataTypeId: "type_1",
limit: 20
});
return <pre>{JSON.stringify(list, null, 2)}</pre>;
}Browser warning
This API uses OAuth client_credentials. If you configure clientCredentials in a browser context, the SDK logs a warning because the secret may be exposed in the JavaScript bundle. Use a server-side proxy or route handler when possible.
Generated review types
Use @omnixdp/typegen to regenerate Ratings and Reviews data types after review data types or global fields change in the admin.
npx omnixdp-typegen \
--api-url https://api.example.com \
--ratings-and-reviews-token "$OMNIXDP_RR_TOKEN" \
--rr-space storefront-reviews \
--out src/omnixdp.generated.tsimport { createRatingsReviewsClient, createTypedRatingsReviewsClient } from "@omnixdp/ratings-and-reviews";
import type { RatingsReviewsClient } from "./omnixdp.generated";
const reviews: RatingsReviewsClient = createTypedRatingsReviewsClient(
createRatingsReviewsClient({
baseUrl: process.env.OMNIXDP_API_URL!,
accessToken: process.env.OMNIXDP_RR_TOKEN!
})
);
const list = await reviews.listReviews({
spaceId: "space_1",
dataTypeId: "type_1",
dataTypeApiIdentifier: "review"
});
list[0]?.data.title;
const reply = await reviews.getDataTreeNode("review_1", "replies", "node_1", {
spaceId: "space_1",
dataTypeApiIdentifier: "review"
});
reply.data;Methods
getAccessToken(options)request(method, pathSegments, options)rawRequest(method, pathSegments, options)listSpaces,listCatalogTypes,listCatalogs,getCatalog,getCategory,listDataTypeslistReviews,getReview,createReview,updateReview,archiveReview,unarchiveReview,deleteReview,uploadReviewFieldgetDataTreeNode,createDataTreeNode,updateDataTreeNode,moveDataTreeNode,deleteDataTreeNodelistLanguages,listGlobalFields
DataTree node helpers export RatingsReviewsDataTreeNode, RatingsReviewsDataTreeNodeOptions, RatingsReviewsCreateDataTreeNodeBody, RatingsReviewsUpdateDataTreeNodeBody, and RatingsReviewsMoveDataTreeNodeBody.
Failed Ratings and Reviews API responses throw RatingsReviewsApiError with status, code, details, and the parsed response body when available.
