with Odoo and ZeroTier?
Authorize a specific member (node) in a network. See docs here
Delete a specific member (node) in a network. See docs here
Get the overall account status. Returns the overall status of the account tied to the API token in use. See docs here
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();
},
})
ZeroTier is a smart Ethernet switch for Earth. It's a global distributed network that connects devices, VMs, and apps with a simple, secure, and ubiquitous network fabric. The ZeroTier API allows you to manage networks, members, and access rules programmatically. With Pipedream's capabilities, you can automate interactions with ZeroTier, integrating it seamlessly with other apps and services to orchestrate complex workflows, react to events, or sync data across platforms.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
zerotier: {
type: "app",
app: "zerotier",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://my.zerotier.com/api/v1/org`,
headers: {
Authorization: `Bearer ${this.zerotier.$auth.api_token}`,
},
})
},
})