with Plasmic and TimescaleDB?
The Plasmic API enables you to tap into the powerful visual design features of Plasmic within Pipedream workflows. With it, you can automate the fetching, updating, and publishing of Plasmic projects and their components. This opens up possibilities for dynamic content management, design collaboration automation, and streamlined deployment processes. You can use the Plasmic API to integrate with various services, trigger updates across platforms, or synchronize design changes in real-time.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
plasmic: {
type: "app",
app: "plasmic",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://codegen.plasmic.app/api/v1/loader/html/preview/${this.plasmic.$auth.project_id}/{your_component_name}`,
headers: {
"x-plasmic-api-project-tokens": `${this.plasmic.$auth.project_id}:${this.plasmic.$auth.project_token}`,
},
})
},
})
import { Pool } from 'pg'; //required by sequelize
import { Sequelize } from "sequelize";
export default defineComponent({
props: {
timescaledb: {
type: "app",
app: "timescaledb",
}
},
async run({steps, $}) {
//Creating object with connection to TimescaleDB instance
const sequelize = new Sequelize({
dialect: 'postgres',
protocol: 'postgres',
host: this.timescaledb.$auth.host,
port: this.timescaledb.$auth.port,
username: this.timescaledb.$auth.user,
password: this.timescaledb.$auth.password,
database: this.timescaledb.$auth.database,
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: this.timescaledb.$auth.ssl_verification_mode === 'verify_identity'
}
}
})
// Test the connection and return the result
try {
await sequelize.authenticate()
const queryInterface = sequelize.getQueryInterface();
const [results, metadata] = await queryInterface.sequelize.query('SELECT 1+1 AS result');
return results;
} catch (error) {
throw new Error(`Unable to connect to the database: ${error}`)
} finally {
await sequelize.close()
}
},
})