with Zoho Projects and Odoo?
Emit new event when a new milestone is created. See the docs here
Emit new event when a new project is created. See the docs here
The Zoho Projects API lets you harness the full potential of project management by enabling seamless integration with other tools and automating routine tasks. With it, you can create projects, manage tasks, track time, and customize your workflow. On Pipedream, you can leverage this API to build robust automations that connect Zoho Projects with a plethora of other apps, streamlining project tracking and collaboration workflows, all without writing a single line of code.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
zoho_projects: {
type: "app",
app: "zoho_projects",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://projectsapi.${this.zoho_projects.$auth.region}/restapi/portals/`,
headers: {
"Authorization": `Zoho-oauthtoken ${this.zoho_projects.$auth.oauth_access_token}`,
},
})
},
})
import xmlrpc from 'xmlrpc';
export default defineComponent({
props: {
odoo: {
type: "app",
app: "odoo",
}
},
async run({ steps, $ }) {
const url = this.odoo.$auth.server_url;
const db = this.odoo.$auth.db;
const username = this.odoo.$auth.username;
const password = this.odoo.$auth.password;
// Create clients for common and object endpoints
const common = xmlrpc.createSecureClient(`${url}/xmlrpc/2/common`);
const models = xmlrpc.createSecureClient(`${url}/xmlrpc/2/object`);
// Using async/await with promises
async function getFields() {
try {
// Authenticate and get uid
const uid = await new Promise((resolve, reject) => {
common.methodCall('authenticate', [db, username, password, {}], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
// Get fields
const results = await new Promise((resolve, reject) => {
models.methodCall('execute_kw', [
db,
uid,
password,
'res.partner',
'fields_get',
[],
{ 'attributes': ['string', 'help', 'type'] }
], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
return results;
} catch (error) {
throw new Error(error);
}
}
return await getFields();
},
})