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" } }