@simpleview/sv-godaddy-client
v1.3.0
Published
Client for communicating with sv-godaddy
Maintainers
Keywords
Readme
sv-godaddy-client
Client for communicating with the sv-godaddy GraphQL system.
It is build 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-godaddy-clientUsing yarn:
yarn install @simpleview/sv-godaddy-clientUpdate
To update to the latest version, rerun the install command.
Authentication Requirements
Interactions with sv-godaddy 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]
});
// authorize 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.
GodaddyPrefix
GodaddyPrefix can be loaded into the sv-graphql-client GraphServer to use as a client library for accessing godaddy in GraphQL.
JavaScript:
const { GodaddyPrefix } = require("@simpleview/sv-godaddy-client");
const { GraphServer } = require("@simpleview/sv-graphql-client");
module.exports = new GraphServer({ graphUrl: GRAPHQL_URL, prefixes: [GodaddyPrefix] });TypeScript:
import { GodaddyPrefix } from "@simpleview/sv-godaddy-client";
import { GraphServer } from "@simpleview/sv-graphql-client";
export default new GraphServer({ graphUrl: GRAPHQL_URL, prefixes: [GodaddyPrefix] });Where you are making server requests:
JavaScript:
const { godaddy } = require("./godaddyGraphServer");TypeScript:
import { godaddy } from "./godaddyGraphServer";GodaddyPrefix.list
This method wraps the godaddy.list GraphQL query.
const result = await godaddy.list({
fields: `
count
docs {
type
data
ttl
name
}
`,
filter: {
zone: "simpleviewinc.com"
},
context: {
acct_id: "sv-all",
token // from serviceAccountToken call
}
});For a request with invalid input such as an unknown zone, an error will be thrown such as The given domain is not registered, or does not have a zone file.
For a request with invalid input such as an invalid url, an error will be thrown such
Variable "$input" got invalid value "http:/%www.google.com" at "input.urls"; Expected type "webrisk_url". Invalid URL
GodaddyPrefix.upsert
This method wraps the godaddy.upsert GraphQL mutation.
const upsertion = await godaddy.upsert({
fields: `
success
message
`,
input: {
data: "your-data",
name: "your-name",
zone: "simpleviewinc.com",
type: "CNAME",
ttl: 1000
},
context: {
acct_id: "sv-all",
token // from serviceAccountToken call
}
});GodaddyPrefix.remove
This method wraps the godaddy.remove GraphQL mutation.
const result = await godaddy.remove({
fields: "success message",
input: {
name: "your-name",
zone: "simpleviewinc.com",
type: "CNAME",
},
context: {
acct_id: "sv-all",
token // from serviceAccountToken call
}
});Versions
- 1.0.0
Related Documentation
Troubleshooting
For any assistance please reach out on the Microservices Support Teams channel.
