Skip to content
This repository was archived by the owner on Jun 21, 2019. It is now read-only.

Commit f683419

Browse files
Venkatesh KatabathulaVenkatesh Katabathula
Venkatesh Katabathula
authored and
Venkatesh Katabathula
committed
Fixed the connection to db and the routes is now set and added a sample document for a sample product
1 parent 6777a4e commit f683419

10 files changed

+81
-113
lines changed
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "Fruit & nut",
3+
"Ingredients": [
4+
"Fresh Dry Fruits and Nuts",
5+
"ButterScotch",
6+
"Lightly Salted Butter Softened",
7+
"Caster Sugar ",
8+
"Ground Cinnamon",
9+
"Moroccan Almond Extract",
10+
"Plain Flour",
11+
"Ground Almonds",
12+
"Glacé Cherries",
13+
"Mixed Dried Fruit",
14+
"Flaked Almonds"
15+
],
16+
"availableSizes": [
17+
2,
18+
3,
19+
5
20+
],
21+
"measure": "kg",
22+
"product_id": "buu:bakery:product:id:0512"
23+
}

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "Sample Express js app",
55
"main": "app.js",
66
"scripts": {
7-
"start": "nodemon src\\app.js --exec babel-node",
7+
"start": "nodemon src\\app.js --exec babel-node && eslint .",
88
"test": "echo \"Error: no test specified\" && exit 1"
99
},
1010
"repository": {
@@ -20,7 +20,7 @@
2020
"dependencies": {
2121
"body-parser": "^1.17.1",
2222
"cors": "^2.8.3",
23-
"couchbase": "^2.2.0",
23+
"couchbase": "2.2.0",
2424
"express": "^4.15.2",
2525
"morgan": "^1.8.1"
2626
},

src/app.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import bodyParser from 'body-parser';
55

66
import config from './common/config.json';
77
import logger from './common/logger';
8-
import ProductRouteHandler from './routes/router-config';
8+
import routeConfig from './routes/router-config';
99

1010
let app = express();
1111
// Setting up the default headers which we receive when a request comes from a browser
@@ -14,7 +14,7 @@ app.use(bodyParser.urlencoded({
1414
extended: true
1515
}));
1616
app.use(function (req, res, next) {
17-
logger.log("Received Request"+req.originalUrl);
17+
logger.debug("Received Request"+req.originalUrl);
1818
res.header('Access-Control-Allow-Origin', '*');
1919
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
2020
next();
@@ -30,14 +30,14 @@ app.use('/', (request, response,next) => {
3030
// response.end(JSON.stringify(success.value));
3131
// })
3232
// .catch(error => {
33-
// logger.log('Caught Error :: ' + error);
33+
// logger.debug('Caught Error :: ' + error);
3434
// });
35-
logger.log("Received Request on :: "+request.originalUrl);
35+
logger.debug("Received Request on :: "+request.originalUrl);
3636
next();
3737
});
3838

39-
app.use('/resouces', ProductRouteHandler);
39+
app.use('/resources', routeConfig);
4040
// Starting the server on configured port
4141
app.listen(config.server.port, () => {
42-
logger.log('Started server on ' + config.server.port);
42+
logger.debug('Started server on ' + config.server.port);
4343
});

src/common/config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"port": 9003
55
},
66
"couchbase": {
7-
"bucketName": "bakeryDb",
7+
"bucketName": "buusBakery",
88
"url": "couchbase://127.0.0.1"
99
}
1010
}

src/common/db-connection.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
/**
2-
* Created by WS33 on 4/16/2017.
3-
*/
41
'use strict';
52
import couchbase from 'couchbase';
63
import config from './config.json';
4+
import logger from './logger';
5+
76
let dbConnection = (new couchbase.Cluster(config.couchbase.url))
87
.openBucket(config.couchbase.bucketName, null, () => {
9-
console.log('Connected to localhost:8091');
8+
logger.debug('Connected to localhost:8091');
109
});
1110

12-
module.exports = dbConnection;
11+
export default dbConnection;

src/common/db-util.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,20 @@ class dbUtil {
77
return new Promise((resolve, reject) => {
88
dbConnection.get(documentName, (error, data) => {
99
if (error) {
10-
logger.console.error('Error loading Data :: ' + error);
10+
logger.error('Error loading Data :: ' + error);
1111
reject(error);
1212
} else {
1313
resolve(data);
1414
}
1515
});
1616
});
1717
}
18-
static queryDb(queryString){
19-
return new Promise((resolve,reject) =>{
20-
dbConnection.query(queryString, (error, data)=>{
21-
if(error) {
22-
logger.error("Error fetching data from db ::: "+error);
18+
19+
static queryDb (queryString) {
20+
return new Promise((resolve, reject) => {
21+
dbConnection.query(queryString, (error, data) => {
22+
if (error) {
23+
logger.error('Error fetching data from db ::: ' + error);
2324
reject(error);
2425
}
2526
else {
@@ -30,4 +31,4 @@ class dbUtil {
3031
}
3132
}
3233

33-
module.exports = dbUtil;
34+
export default dbUtil;

src/data-layer/product-data.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,2 @@
1-
import dbBucket from './../common/db-util';
2-
3-
let productData = {
4-
5-
};
1+
let productData = {};
62
export default productData;

src/routes/product-route-handler.js

+20-12
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,38 @@
11
import express from 'express';
2+
import { N1qlQuery }from 'couchbase';
23

34
import dbUtil from './../common/db-util';
45
import logger from './../common/logger';
6+
import { couchbase } from './../common/config.json';
57

68
let router = express.Router();
7-
router.get('/', (request, response, next) => {
8-
logger.log("Received request to get all products :: ");
9-
let queryString = "Select * from bakery-db where product_id like buu:bakery:product:id%";
10-
dbUtil.queryDb(queryString)
9+
let bucket = `${couchbase.bucketName}`;
10+
router.get('/', (request, response) => {
11+
logger.debug('Received request to get all products :: ' + request.originalUrl);
12+
let queryString = 'Select * from ' + bucket + ' where product_id like \'buu:bakery:product:id%\'';
13+
logger.info('query fired :: ' + queryString);
14+
dbUtil.queryDb(N1qlQuery.fromString(queryString))
1115
.then(dbResponse => {
12-
response = {
13-
data: dbResponse.data,
16+
// logger.info('dbResponse ::: ' + JSON.stringify(dbResponse));
17+
response.json({
18+
data: dbResponse,
1419
success: true
15-
};
16-
next();
20+
});
21+
// logger.info('Response:: ' + JSON.stringify(response));
1722
})
1823
.catch(error => {
19-
response = {
24+
logger.debug('Error :: ' + error);
25+
response.json({
2026
success: false,
2127
message: error
22-
}
28+
});
29+
2330
});
24-
logger.log(response);
31+
// logger.debug(response);
2532
});
2633

2734
router.post('/products', (request, response) => {
28-
logger.log("response :: " + response);
35+
response = {success: true};
36+
logger.debug('response :: ' + response);
2937
});
3038
export default router;

src/routes/router-config.js

+16-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
1+
'use strict';
12
import productRouteHandler from './product-route-handler';
23

34
import express from 'express';
5+
let router = express.Router();
46

5-
let app = express();
6-
export default ( request, response, next ) => {
7-
app.get( '/', productRouteHandler );
8-
next();
9-
}
7+
router.use('/', productRouteHandler);
8+
export default router;
9+
10+
/*
11+
export default (request, response) => {
12+
/!*app.get('/', (request, response) => {
13+
logger.info('received request ::: ' + request.originalUrl);
14+
response = {success: true};
15+
logger.debug(response);
16+
17+
});*!/
18+
router.get('/', productRouteHandler);
19+
}
20+
*/

yarn-error.log

-70
This file was deleted.

0 commit comments

Comments
 (0)