with Odoo and WakaTime?
Emit new event when a new commit is created in WakaTime. See the documentation
Emit new event when a new goal is created in WakaTime. See the documentation
Emit new event when a new project is created in WakaTime. See the documentation
Fetch your daily coding activity from WakaTime. See the documentation
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();
},
})
WakaTime offers insights into your coding activity, enabling you to track the time you spend on programming projects. With the WakaTime API on Pipedream, you can automate the extraction of this data to trigger actions in other apps, generate reports, and monitor your development workflow. Pipedream's serverless platform allows you to connect WakaTime to hundreds of other services without writing comprehensive code, creating opportunities to streamline your productivity and gain data-driven insights into your coding habits.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
wakatime: {
type: "app",
app: "wakatime",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://wakatime.com/api/v1/users/current`,
headers: {
Authorization: `Bearer ${this.wakatime.$auth.oauth_access_token}`,
},
})
},
})