@simpleview/sv-reviews-client
v1.0.0
Published
Client for communicating with sv-reviews
Maintainers
Keywords
Readme
sv-reviews-client
Client for communication with the sv-reviews GraphQL system.
It is built in TypeScript and has one peer dependency of @simpleview/sv-graphql-client.
OS Support
The expectation is that this application will be installed in Linux using sv-kubernetes.
Prerequisites
Install
Using npm:
npm install @simpleview/sv-reviews-clientUsing yarn:
yarn install @simpleview/sv-reviews-clientUpdate
To update to the latest version, rerun the install command.
Authentication Requirements
Interactions with sv-reviews require authentication as a Simpleview user.
Use a Google Service Account when interacting with the service on behalf of a product.
const { AuthPrefix } = require("@simpleview/sv-auth-client");
const { GraphServer } = require("@simpleview/sv-graphql-client");
async function serviceAccountToken() {
const service_account = JSON.parse(SERVICE_ACCOUNT_JSON);
const { auth } = new GraphServer({
graphUrl: AUTH_GRAPHQL_URL,
prefixes: [AuthPrefix]
});
// authorise the service_account return the token
const { token } = await auth.login_service_account({
input: {
email: service_account.client_email,
private_key: service_account.private_key
},
fields: `
success
token
`
});
return token;
}The token should be added to the context for each function call.
Implementation & Usage
To see the input parameters and output fields of an endpoint, view the Schema in the GraphQL Explorer at https://graphql.simpleviewinc.com/ for the corresponding GraphQL query.
ReviewsPrefix
ReviewsPrefix can be loaded into the sv-graphql-client GraphServer to use as a client library for accessing reviews in GraphQL.
JavaScript:
const { ReviewsPrefix } = require("@simpleview/sv-reviews-client");
const { GraphServer } = require("@simpleview/sv-graphql-client");
module.exports = new GraphServer({ graphUrl: GRAPHQL_URL, prefixes: [ReviewsPrefix] });TypeScript:
import { ReviewsPrefix } from "@simpleview/sv-reviews-client";
import { GraphServer } from "@simpleview/sv-graphql-client";
export default new GraphServer({ graphUrl: GRAPHQL_URL, prefixes: [ReviewsPrefix] });Where you are making server requests:
JavaScript:
const { reviews } = require("./reviewsGraphServer");TypeScript:
import { reviews } from "./reviewsGraphServer";ReviewsPrefix.location_ids
This method wraps the reviews.location_ids GraphQL query.
const result = await reviews.location_ids({
fields: "count docs { service_name location_id created updated }",
filter: {
service_name: "tripadvisor",
updated: {
gte: new Date("2024-01-01"),
lte: new Date("2024-12-31")
}
},
options: {
limit: 100,
skip: 0,
sort: [
{
field: "updated",
dir: "desc"
}
]
},
context: {
token // from serviceAccountToken call
}
});ReviewsPrefix.location_ids_upsert
This method wraps the reviews.location_ids_upsert GraphQL mutation.
const result = await reviews.location_ids_upsert({
fields: "success message",
input: [
{
service_name: "tripadvisor",
location_id: "ta-location-123456"
},
{
service_name: "tripadvisor",
location_id: "ta-attraction-789012"
}
],
context: {
token // from serviceAccountToken call
}
});Related Documentation
Troubleshooting
For any assistance please reach out on the Microservices Support Teams channel.
