with Asana and OpenSRS?
Emit new event for each new project added to a workspace.
Emit new event for each story added to a project.
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
Initiate a domain transfer to OpenSRS. See the documentation
Add a task to a specific, existing section. This will remove the task from other sections of the project. See the documentation
Creates a new subtask and adds it to the parent task. See the documentation
The Asana API taps into the feature-rich project management platform, allowing you to automate tasks, sync data across apps, and enhance team collaboration. With the Asana API on Pipedream, you can create tasks, update project timelines, and trigger workflows from events within Asana—like new tasks or comments—streamlining your project management processes. Pipedream’s serverless platform empowers you to build complex workflows with minimal overhead, integrating Asana with numerous other services to maximize productivity and reduce manual workload.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
asana: {
type: "app",
app: "asana",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://app.asana.com/api/1.0/users/me`,
headers: {
Authorization: `Bearer ${this.asana.$auth.oauth_access_token}`,
},
})
},
})
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
});
},
})