with Curated and Odoo?
The Curated API enables you to automate the management of your newsletters. With it, you can create issues, manage subscribers, and curate content, all programmatically. This allows for rich integrations with other tools and systems, offering opportunities to streamline your newsletter operations. Using Pipedream, you can harness this functionality to set up custom workflows, trigger actions based on various events, and connect Curated with a plethora of other services to enhance your newsletter productivity.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
curated: {
type: "app",
app: "curated",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.curated.co/api/v3/publications`,
headers: {
"Authorization": `Token token=${this.curated.$auth.api_key}`,
},
})
},
})
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();
},
})