with Kafka and Contentful (OAuth)?
import { Kafka } from "kafkajs"
export default defineComponent({
props: {
kafka: {
type: "app",
app: "kafka",
}
},
async run({steps, $}) {
const kafka = new Kafka({
brokers: [`${this.kafka.$auth.host}:${this.kafka.$auth.port}`],
});
const consumer = kafka.consumer({ groupId: 'TestGroup' });
await consumer.connect()
await consumer.subscribe({ topic: 'SampleTopic', fromBeginning: true });
let consumedMessage = "";
const eachMessage = async function({ topic, partition, message }){
consumedMessage = message.value.toString();
return consumedMessage;
};
await consumer.run({
eachMessage,
});
const producer = kafka.producer();
await producer.connect()
await producer.send({
topic: 'SampleTopic',
messages: [
{ value: 'Welcome KafkaJS + Pipedream users! '+ new Date().toISOString() },
],
});
await producer.disconnect();
const data = await consumer.describeGroup();
return { consumedMessage, groupDescription: data };
},
})
Contentful's Content Management API lets you manage content as data and integrate it seamlessly with any tech stack. On Pipedream, you can wield this power to automate content operations, sync data across platforms, and trigger workflows based on content events. For example, you could update an external database with new content entries, notify team members of content changes, or generate static sites when content updates.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
contentful: {
type: "app",
app: "contentful",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.contentful.com/spaces`,
headers: {
Authorization: `Bearer ${this.contentful.$auth.oauth_access_token}`,
},
})
},
})