with Hasura and RabbitMQ?
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,
})
},
})
import amqp from "amqplib";
export default defineComponent({
props: {
rabbitmq: {
type: "app",
app: "rabbitmq",
}
},
async run({ steps, $ }) {
const url = `amqp://${this.rabbitmq.$auth.username}:${this.rabbitmq.$auth.password}@${this.rabbitmq.$auth.host}:${this.rabbitmq.$auth.port}`;
const connection = await amqp.connect(url);
const channel = await connection.createChannel();
const queue = 'Sample Queue';
await channel.assertQueue(queue, { durable: true });
const message = 'Welcome RabbitMQ + Pipedream users! ' + new Date().toISOString()
channel.sendToQueue(queue, Buffer.from(message), { persistent: true });
console.log(`Sent: ${message}`);
const queueInfo = await channel.checkQueue(queue);
return queueInfo;
},
})