with OpenSRS and TinyURL?
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event for each new domain registration. See the documentation
Emit new event when the status of a domain transfer changes. See the documentation
Initiate a domain transfer to OpenSRS. See the documentation
Retrieves analytics for a specific TinyURL link, including total clicks, geographic breakdowns, and device types. See the documentation
Updates the metadata of an existing TinyURL. See the documentation
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
opensrs: {
type: "app",
app: "opensrs",
}
},
async run({steps, $}) {
const connectionDetails = {
reseller_username: this.opensrs.$auth.reseller_username,
api_key: this.opensrs.$auth.api_key,
api_host_port: this.opensrs.$auth.api_host_port
};
//Payload of the request
const xml = `<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">${this.opensrs.$auth.domain}</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>`;
// Generate signature
const generateSignature = (xml, apiKey) => {
let md5 = crypto.createHash('md5');
md5.update(xml + apiKey);
let firstHash = md5.digest('hex');
md5 = crypto.createHash('md5');
md5.update(firstHash + apiKey);
return md5.digest('hex');
};
const signature = generateSignature(xml, connectionDetails.api_key);
// Prepare and call OpenSRS API
const headers = {
'Content-Type': 'text/xml',
'X-Username': connectionDetails.reseller_username,
'X-Signature': signature
};
return await axios($, {
method: "POST",
url: connectionDetails.api_host_port,
headers,
data: xml
});
},
})
The TinyURL API lets you shorten URLs seamlessly, which can be particularly useful when dealing with lengthy or complex web addresses. With Pipedream, you can integrate the TinyURL API to create concise, manageable links that can be easily shared, tracked, or embedded in various digital content. Beyond simple URL shortening, using Pipedream's serverless platform enables you to automate workflows that involve generating, distributing, and monitoring TinyURLs in conjunction with other apps and services.
module.exports = defineComponent({
props: {
tinyurl: {
type: "app",
app: "tinyurl",
}
},
async run({steps, $}) {
return (await require("@pipedream/platform").axios($, {
url: `https://api.tinyurl.com/create/`,
method: `post`,
headers: {
Authorization: `Bearer ${this.tinyurl.$auth.api_token}`,
},
data: {
url: `ftp://www.example.com/my-really-long-link-that-I-need-to-shorten/84378949`,
}
})).data
},
})