with Odoo and Hasura?
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();
},
})
The Hasura API offers a powerful way to interact with your Hasura backend using GraphQL to build, query, and mutate your data. On Pipedream, you can leverage this API to create dynamic workflows that react to events in your Hasura instance, automate CRUD operations, and integrate with other services. By using Hasura with Pipedream, you gain the ability to automate tasks, sync data across apps, and respond in real-time to changes in your database.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
hasura: {
type: "app",
app: "hasura",
}
},
async run({steps, $}) {
const data = {
"query": `query GetUsers {
users {
id
email
name
}
}`,
}
return await axios($, {
method: "post",
url: `${this.hasura.$auth.url}`,
headers: {
"x-hasura-admin-secret": `${this.hasura.$auth.admin_secret}`,
},
data,
})
},
})