Skip to content

Commit

Permalink
working on implementing cloud endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
seymoneg committed Dec 9, 2023
1 parent c4ed877 commit f5950c4
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions functions/sample/nodejs/get-dealership.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const Cloudant = require('@cloudant/cloudant');

// Initialize Cloudant connection with IAM authentication
async function dbCloudantConnect() {
try {
const cloudant = Cloudant({
plugins: { iamauth: { iamApiKey: "vRtasq1zKAqD6dHktAKh4QCorDO4cYuGaNyO03bMXKq6" } }, // Replace with your IAM API key
url: "https://eabdc68c-13b3-4b02-8ef7-e4ab8c406454-bluemix.cloudantnosqldb.appdomain.cloud", // Replace with your Cloudant URL
});

const db = cloudant.use('dealerships');
console.info('Connect success! Connected to DB');
return db;
} catch (err) {
console.error('Connect failure: ' + err.message + ' for Cloudant DB');
throw err;
}
}

let db;

(async () => {
db = await dbCloudantConnect();
})();

app.use(express.json());

// Define a route to get all dealerships with optional state and ID filters
app.get('/dealerships/get', (req, res) => {
const { state, id } = req.query;

// Create a selector object based on query parameters
const selector = {};
if (state) {
selector.state = state;
}

if (id) {
selector.id = parseInt(id); // Filter by "id" with a value of 1
}

const queryOptions = {
selector,
limit: 10, // Limit the number of documents returned to 10
};

db.find(queryOptions, (err, body) => {
if (err) {
console.error('Error fetching dealerships:', err);
res.status(500).json({ error: 'An error occurred while fetching dealerships.' });
} else {
const dealerships = body.docs;
res.json(dealerships);
}
});
});

app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});

0 comments on commit f5950c4

Please sign in to comment.