with Odoo and FastField Mobile Forms?
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();
},
})
The FastField Mobile Forms API allows you to automate interactions with your mobile forms. Using this API on Pipedream, you can trigger workflows based on form submissions, fetch and push data to and from your forms, and integrate with other services to streamline data processing. It’s ideal for creating powerful, serverless workflows that react to form data in real-time, update databases, send notifications, or even generate reports.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
fastfield_mobile_forms: {
type: "app",
app: "fastfield_mobile_forms",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.fastfieldforms.com/services/v3/users`,
headers: {
Authorization: `Bearer ${this.fastfield_mobile_forms.$auth.session_token}`,
"X-Gatekeeper-SessionToken": `${this.fastfield_mobile_forms.$auth.session_token}`,
"FastField-API-Key": `${this.fastfield_mobile_forms.$auth.api_key}`,
},
})
},
})