Skip to content

Commit

Permalink
added get-dealership.js
Browse files Browse the repository at this point in the history
  • Loading branch information
gokhanduzel committed Dec 3, 2023
1 parent 258037d commit c1dc098
Show file tree
Hide file tree
Showing 3 changed files with 2,552 additions and 0 deletions.
63 changes: 63 additions & 0 deletions functions/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: 'lFnsCSKmd5_xobPHhDOqiEiAf8Cl5wzXIkl8fZE6XICX' } }, // Replace with your IAM API key
url: 'https://6ddb1e63-c7db-4e0c-89fa-79730f4d208e-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}`);
});
Loading

0 comments on commit c1dc098

Please sign in to comment.