with Odoo and Google Maps (Places API)?
Retrieves detailed information for a specific place using its Place ID. See the documentation
Searches for places based on location, radius, and optional filters like keywords, place type, or name. 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();
},
})
The Google Maps (Places API) offers detailed information about physical locations, including places of interest, reviews, and other metadata. In Pipedream, you can leverage this API to create dynamic workflows that respond to location data. Whether you're building apps that track asset locations, automate location-based alerts, or provide users with local info, integrating with Google Maps can add a powerful spatial context to your services.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
google_maps_platform: {
type: "app",
app: "google_maps_platform",
}
},
async run({steps, $}) {
return await axios($, {
method: "post",
url: `https://maps.googleapis.com/maps/api/place/findplacefromtext/json`,
params: {
key: `${this.google_maps_platform.$auth.api_key}`,
input: `Museum of Contemporary Art Australia`,
inputtype: `textquery`,
},
})
},
})