with Copperx and Odoo?
The Copperx API offers a suite of tools for cryptocurrency trading, providing users with real-time access to market data, order execution, and account management. Integrating this API into Pipedream allows for the creation of custom, serverless workflows that can automate trading strategies, alert users to market changes, and manage portfolios efficiently without manual intervention. By leveraging Pipedream's ability to connect to hundreds of apps, users can develop robust, event-driven automations that respond to market conditions or other external signals.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
copperx: {
type: "app",
app: "copperx",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://${this.copperx.$auth.environment}/api/v1/organization`,
headers: {
Authorization: `Bearer ${this.copperx.$auth.api_key}`,
"accept": `application/json`,
},
})
},
})
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();
},
})