Last active
May 7, 2016 02:42
-
-
Save mitchross/1d049f8de1a3eeed40951cf3b39e3c17 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var express = require ('express'); | |
var cors = require('cors'); | |
var app = express(); | |
var mongoose = require ('mongoose'); | |
var morgan = require('morgan'); // log requests to the console (express4) | |
var bodyParser = require('body-parser'); // pull information from HTML POST (express4) | |
var methodOverride = require('method-override'); | |
var xml2js = require('xml2js'); | |
var https = require('https'); | |
var request = require('request'); | |
var et = require("elementtree"); | |
//Could use mongolab endpoint, demo is limited to local host | |
//mongoose.connect('mongodb://localhost/searchesTest'); | |
mongoose.connect('mongodb://vanillax:temp15@ds037262.mongolab.com:37262/tvbc_logger/Searches'); | |
app.use( cors() ); | |
app.use(express.static( 'public')); | |
app.set('views', "public/" ); | |
app.engine('html', require('ejs').renderFile); | |
app.set('view engine', 'html'); | |
app.use(morgan('dev')); | |
app.use(bodyParser.urlencoded({'extended':'true'})); | |
app.use(bodyParser.json()); | |
app.use(bodyParser.json({ type: 'application/vnd.api+json'})); | |
app.use(methodOverride()); | |
var port = Number(process.env.PORT || 3000); | |
app.listen(port); | |
console.log("App listening on port:" + port); | |
//Model Object | |
var SearchTerm = mongoose.model('SearchTerm' , { | |
text : String | |
}); | |
app.use(function(req, res, next) { | |
res.header("Access-Control-Allow-Origin", "*"); | |
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); | |
res.header("Access-Control-Allow-Methods: GET, POST , DELETE"); | |
next(); | |
}); | |
app.get('/', function(req,res){ | |
res.render('index.html'); | |
}); | |
//Routes | |
app.get('/api/searchterms', function( req , res ){ | |
SearchTerm.find(function(err , searchTerms){ | |
if (err ) | |
{ | |
res.send(err) | |
} | |
res.json(searchTerms); | |
}); | |
}); | |
function parseXML( data) { | |
//do something | |
console.log( "made it to parse xml"); | |
return data; | |
} | |
app.get('/api/getiosreviews', function( req , res ){ | |
var newUrl = 'https://itunes.apple.com/rss/customerreviews/id=583093664/sortBy=mostRecent/xml'; | |
var xmlReq = https.get(newUrl, function (response) { | |
var completeResponse = ''; | |
response.on('data', function (chunk) { | |
completeResponse += chunk; | |
}); | |
response.on('end', function() { | |
console.log(completeResponse); | |
return parseXML( completeResponse ) | |
}) | |
}).on('error', function (e) { | |
console.log('problem with request: ' + e.message); | |
}); | |
}); | |
app.post('/api/searchterms', function(req , res) { | |
SearchTerm.create({ | |
text: req.body.text, | |
done: false | |
}, function(err, searchTerm){ | |
if ( err ) | |
{ | |
res.send(err) | |
} | |
res.json( searchTerm ) | |
}); | |
}); | |
app.delete('/api/searchterms/:searchterm_id' , function ( req , res ) { | |
SearchTerm.remove( | |
{ | |
_id : req.params.searchterm_id | |
}, | |
function(err, searchTerm) | |
{ | |
if ( err ) | |
{ | |
res.send(err); | |
} | |
SearchTerm.find( function(err, searchTerms) { | |
if ( err ) | |
{ | |
res.send(err) | |
} | |
res.json( searchTerms ); | |
}); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment