From 69457f2f4f37fb4e2ea11d04395823705953fd0a Mon Sep 17 00:00:00 2001
From: shaima96 <141062@ppu.edu.ps>
Date: Wed, 5 Dec 2018 11:33:06 -0600
Subject: [PATCH 1/2] added getMOives query #3
---
src/handlerfunction/searchMoive.js | 18 ++++++++
src/queries/getMovies.js | 11 +++++
src/server/handlers.js | 66 ++++++++++++++++++------------
3 files changed, 68 insertions(+), 27 deletions(-)
create mode 100644 src/handlerfunction/searchMoive.js
create mode 100644 src/queries/getMovies.js
diff --git a/src/handlerfunction/searchMoive.js b/src/handlerfunction/searchMoive.js
new file mode 100644
index 0000000..1be05a6
--- /dev/null
+++ b/src/handlerfunction/searchMoive.js
@@ -0,0 +1,18 @@
+require('env2')('.env')
+const request = require('request');
+const handlers = require('../server/handlers');
+const getMoives = require('../queries/getMovies.js');
+
+const search = (req, res, value) => {
+getMoives(value,(err,result)=>{
+ if(err){
+ console.log(err);
+ }else {
+ res.writeHead(200,{ 'content-type': 'application/json '});
+ const output=JSON.stringify(result);
+ res.end(output);
+ }
+ })
+};
+
+module.exports = { search };
diff --git a/src/queries/getMovies.js b/src/queries/getMovies.js
new file mode 100644
index 0000000..f6bb34f
--- /dev/null
+++ b/src/queries/getMovies.js
@@ -0,0 +1,11 @@
+const dbConnection = require('../database/db_connection.js');
+
+const getMoives = (title,cb) => {
+ const query = 'SELECT * FROM movies where title = $1';
+ dbConnection.query(query ,[title], (err, res) => {
+ if (err) return cb(err);
+ cb(null, res.rows);
+ });
+};
+
+module.exports =getMoives;
diff --git a/src/server/handlers.js b/src/server/handlers.js
index 81c5f64..273c570 100644
--- a/src/server/handlers.js
+++ b/src/server/handlers.js
@@ -1,52 +1,64 @@
-const fs = require('fs');
-const path = require('path');
-const querystring = require('querystring');
+const fs = require('fs')
+const path = require('path')
+const querystring=require('querystring');
+const searchMoive=require('../handlerfunction/searchMoive.js')
const errorHandler = (request, response) => {
- response.writeHead(404, { 'content-type': 'text/html' });
- response.end('
Page Not Found
');
-};
+ response.writeHead(404, { 'content-type': 'text/html' })
+ response.end(' Page Not Found
')
+}
const homeHandler = (request, response) => {
- const htmlPath = path.join(__dirname, '..', '..', 'public', 'index.html');
+ const htmlPath = path.join(__dirname, '..', '..', 'public', 'index.html')
fs.readFile(htmlPath, (error, htmlFile) => {
if (error) {
- response.writeHead(500, { 'content-Type': 'text/html' });
- response.end(' Server error! sorry
');
- return;
+ response.writeHead(500, { 'content-Type': 'text/html' })
+ response.end(' Server error! sorry
')
+ return
}
- response.writeHead(200, { 'Content-Type': 'text/html' });
- response.write(htmlFile);
- response.end();
- });
-};
+ response.writeHead(200, { 'Content-Type': 'text/html' })
+ response.write(htmlFile)
+ response.end()
+ })
+}
const publicHandler = (request, response) => {
- const extension = request.url.split('.')[1];
+ const extension = request.url.split('.')[1]
const contentTypeMapping = {
html: 'text/html',
css: 'text/css',
- js: 'application/js',
- };
+ js: 'application/js'
+ }
if (!contentTypeMapping[extension]) {
- response.writeHead(404, { 'Content-Type': 'text/html' });
- response.end(' Not Found
');
+ response.writeHead(404, { 'Content-Type': 'text/html' })
+ response.end(' Not Found
')
} else {
- const filePath = path.join(__dirname, '..', '..', 'public', request.url);
+ const filePath = path.join(__dirname, '..', '..', 'public', request.url)
fs.readFile(filePath, (error, file) => {
if (error) {
- errorHandler(request, response);
+ errorHandler(request, response)
}
- response.writeHead(200, { 'content-type': contentTypeMapping[extension] });
- response.end(file);
- });
+ response.writeHead(200, { 'content-type': contentTypeMapping[extension] })
+ response.end(file)
+ })
+ }
+}
+
+const searchMoviesHandler = (request, response) => {
+if (!request.url.includes('/search?value=')) {
+ errorHandler(request, response);
+}else {
+ const parsedQuery = querystring.parse(request.url.split('?')[1]);
+ searchMoive.search(request, response, parsedQuery.value);
}
};
+
module.exports = {
homeHandler,
publicHandler,
- errorHandler
+ errorHandler,
+ searchMoviesHandler,
-};
+}
From a75352f7192a1d74675a7bc15487fbb7f7990024 Mon Sep 17 00:00:00 2001
From: shaima96 <141062@ppu.edu.ps>
Date: Wed, 5 Dec 2018 11:46:08 -0600
Subject: [PATCH 2/2] changes in package.json file
---
package.json | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/package.json b/package.json
index b2ba7f3..7d93720 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,8 @@
"description": "",
"main": "index.js",
"scripts": {
- "start": "nodemon ./src/server/server.js",
+ "start": "node ./src/server/server.js",
+ "dev": "nodemon ./src/server/server.js",
"test": "tape ./src/test/test.js | tap-spec ",
"lint": "./node_modules/.bin/eslint ./src/server/**/*.js",
"lint-fix": "./node_modules/.bin/eslint --fix ./src/**/*.js"
@@ -22,8 +23,8 @@
"dependencies": {
"env2": "^2.2.2",
"istanbul": "^0.4.5",
- "nodemon": "^1.18.7",
"pg": "^7.7.1",
+ "request": "^2.88.0",
"tape": "^4.9.1"
},
"devDependencies": {
@@ -33,6 +34,7 @@
"eslint-plugin-node": "^8.0.0",
"eslint-plugin-promise": "^4.0.1",
"eslint-plugin-standard": "^4.0.0",
+ "nodemon": "^1.18.7",
"tap-spec": "^5.0.0"
}
}