with PostgreSQL and Odoo?
Emit new event when a new column is added to a table. See the documentation
Emit new event when a row is added or modified. See the documentation
Emit new event when a new row is added to a table. See the documentation
Emit new event when new rows are returned from a custom query that you provide. See the documentation
Emit new event when a new table is added to the database. See the documentation
On Pipedream, you can leverage the PostgreSQL app to create workflows that automate database operations, synchronize data across platforms, and react to database events in real-time. Think handling new row entries, updating records from webhooks, or even compiling reports on a set schedule. Pipedream's serverless platform provides a powerful way to connect PostgreSQL with a variety of apps, enabling you to create tailored automation that fits your specific needs.
import postgresql from "@pipedream/postgresql"
export default defineComponent({
props: {
postgresql,
},
async run({ steps, $ }) {
// Component source code:
// https://github.com/PipedreamHQ/pipedream/tree/master/components/postgresql
const queryObj = {
text: "SELECT NOW()",
values: [], // Ignored since query does not contain placeholders
};
return await this.postgresql.executeQuery(queryObj);
},
})
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();
},
})