Advertisement
shappy0

Untitled

Nov 15th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.73 KB | None | 0 0
  1. var express =require('express');
  2. var busboy = require('connect-busboy');
  3. var app =express();
  4. var multiparty = require('multiparty');
  5. var bodyParser =require('body-parser');
  6. var morgan =require('morgan');
  7. var mongoose =require('mongoose');
  8. var passport =require('passport');
  9. var port =process.env.PORT||3000;
  10. var jwt =require('jwt-simple');
  11. var bcrypt =require('bcryptjs');
  12. var mime =require('mime-types');
  13. var path =require('path');
  14. var config =require('./config/database');
  15. var User =require('./app/models/user');
  16. var admodel =require('./app/models/admodel');
  17. var adminModel =require('./app/models/adminmodel');
  18. var cityModel =require('./app/models/addcitymodel');
  19. var catModel =require('./app/models/addcatmodel');
  20.  
  21.  
  22. //get our request parameters
  23. app.use(bodyParser.urlencoded({extended:false}));
  24. app.use(bodyParser.json());
  25.  
  26.  
  27. //log to console
  28. app.use(morgan('dev'));
  29. //use the passport package in our app
  30. app.use(passport.initialize());
  31. //demo route(http://localhost:8080)
  32. app.use(express.static(__dirname+ "/public"));
  33.  
  34. app.use(express.static(__dirname+ "/public/assets/images"));
  35. //connect to database
  36. mongoose.connect(config.database);
  37. //pass passport for config
  38. require('./config/passport')(passport);
  39. //bunddle route
  40. var apiRoutes=express.Router();
  41.  
  42.  
  43. //New User registration
  44. apiRoutes.post('/register', function(req, res, next) {
  45. if (!req.body.name || !req.body.password) {
  46. res.json({success: false, msg: 'Please pass Name and Password.'});
  47. } else {
  48. var newUser=new User({
  49. name:req.body.name,
  50. password:req.body.password,
  51. mobile:req.body.mobile
  52. });
  53. newUser.save(function(err, data){
  54. if(err){
  55. return res.json(err);
  56. res.json({success: false, msg: 'Please try again'});
  57. }
  58. else{
  59. console.log(data);
  60. res.json({success: true, msg: 'Successfully User registered'});
  61. }
  62. })
  63. }
  64. });
  65. // user login
  66. apiRoutes.put('/login', function(req, res, next){
  67. User.findOne({name:req.body.name}, function(err, user){
  68. bcrypt.compare(req.body.password, user.password, function(err, result){
  69. if(result){
  70. var token=jwt.encode(user, config.secret);
  71. return res.json({token:token});
  72. }else{
  73. return res.status(400).send();
  74. }
  75. })
  76. })
  77. })
  78.  
  79. //admin login
  80. apiRoutes.put('/adminlogin', function(req, res, next){
  81. adminModel.findOne({email:req.body.email}, function(err, admin){
  82. bcrypt.compare(req.body.password, admin.password, function(err, result){
  83. if(result){
  84. var token=jwt.encode(admin, config.secret);
  85. return res.json({token:token});
  86. }else{
  87. return res.status(400).send();
  88. }
  89. })
  90. })
  91. })
  92.  
  93. app.use(busboy());
  94.  
  95. //ad post
  96. apiRoutes.post('/adcreate' ,function(req, res){
  97. var fstream;
  98. req.pipe(req.busboy);
  99. req.busboy.on('file', function (fieldname, file, filename) {
  100. console.log("Uploading: " + filename);
  101.  
  102. //Path where image will be uploaded
  103. fstream = fs.createWriteStream(__dirname + '/img/' + filename);
  104. file.pipe(fstream);
  105. fstream.on('close', function () {
  106. console.log("Upload Finished of " + filename);
  107. res.redirect('back'); //where to go next
  108. });
  109. });
  110. req.busboy.on('finish', next);
  111. var token=req.headers.authorization;
  112. var owner=jwt.decode(token, config.secret);
  113. var currentDate=Date.now();
  114. var adId=Math.floor(Math.random()*13030978)+1;
  115. var ad=new admodel({
  116. id:adId,
  117. title: req.body.title,
  118. category:req.body.category,
  119. condition:req.body.condition,
  120. brand:req.body.brand,
  121. price:req.body.price,
  122. city:req.body.city,
  123. town:req.body.town,
  124. description:req.body.description,
  125. date:currentDate,
  126. ownerId:owner
  127. }) ;
  128. ad.save(function(err, data){
  129. if(err){
  130. res.json(err);
  131. return res.json({success:false, msg:'Ad not Posted'});
  132. }else{
  133. res.json({succes:true, msg:'Successfully ad Posted'});
  134. }
  135. });
  136. });
  137.  
  138. //get ad basis of category
  139. apiRoutes.get('/getadscat/:category', function(req, res, next){
  140. admodel.find({category:req.params.category}, function(err, data){
  141. if(err){res.json(err);}
  142. else{
  143. res.json(data);
  144. }
  145. }).sort({date: -1});
  146. })
  147. //get individual ad
  148. apiRoutes.get('/individualads/:id', function(req, res,next){
  149. admodel.findOne({_id:req.params.id}).populate('ownerId').exec(function(err, data){
  150. if(err){
  151. res.json(err);
  152. } else{
  153. console.log(data);
  154. res.json(data);
  155. }
  156. });
  157. });
  158.  
  159. //fetch ad categories
  160. apiRoutes.get('/fetchCategories', function(req, res, next){
  161. categoryModel.find(function(err, data){
  162. if(err)
  163. {
  164. res.json(err);
  165. res.json({success:false, msg:"Some Error Found"});
  166. }
  167. else{
  168. res.json({success:true, msg:"Successfully Fechted Data"});
  169. }
  170. });
  171. });
  172.  
  173. //search ads
  174. apiRoutes.get('/search/:title/category/:category', function(req,res, next){
  175. admodel.findOne({title:req.params.title, category:req.params.category}, function(err, data){
  176. if(err){res.json(err)}
  177.  
  178. else{ res.json(data);}
  179. })
  180. });
  181.  
  182. //add cities
  183. apiRoutes.post('/addcity', function(req, res, next){
  184. var city=new cityModel({
  185. city:req.body.city,
  186. state:req.body.state
  187. }) ;
  188. city.save(function(err, data){
  189. if(err){
  190. res.json(err);
  191. return res.json({success:false, msg:'Not Saved'});
  192. }else{
  193. res.json({succes:true, msg:'Successfully Saved'});
  194. }
  195. });
  196. });
  197. apiRoutes.get('/addcity', function(req, res, next){
  198. cityModel.find(function(err, data){
  199. if(err){res.json(err)}
  200. else{
  201. res.json(data);
  202. }
  203.  
  204. })
  205. });
  206.  
  207. //add category
  208. apiRoutes.post('/addcategory', function(req, res, next){
  209. new catModel({category:req.body.category}).save(function(err, data){
  210. if(err){res.json(err);return res.json({success:false, msg:'Not Saved'});}
  211. else{
  212. res.json({succes:true, msg:'Successfully Saved'});
  213. }
  214. });
  215. });
  216. apiRoutes.get('/addcategory', function(req, res, next){
  217. catModel.find(function(err, data){
  218. if(err){res.json(err)}
  219. else{
  220. res.json(data);
  221. }
  222.  
  223. })
  224. });
  225. // get all ads
  226. apiRoutes.get('/getads', function(req, res,next){
  227. admodel.find({}).populate('ownerId').exec(function(err, data){
  228. if(err){
  229. res.json(err);
  230. } else{
  231. console.log(data);
  232. res.json(data);
  233. }
  234. });
  235. })
  236. apiRoutes.get('/viewads/:id', function(req, res,next){
  237. admodel.findOne({_id:req.params.id}).populate('ownerId').exec(function(err, data){
  238. if(err){
  239. res.json(err);
  240. } else{
  241. console.log(data);
  242. res.json(data);
  243. }
  244. });
  245. });
  246. //get category in create page
  247. apiRoutes.get('/getcat', function(req, res, next){
  248. catModel.find({},function(err, data){
  249. if(err)
  250. {
  251. res.json(err);
  252. }
  253. else{
  254. console.log(data); res.json(data);
  255. }
  256. });
  257. });
  258. //get city create page
  259. apiRoutes.get('/getcity', function(req, res, next){
  260. cityModel.find({},function(err, data){
  261. if(err)
  262. {
  263. res.json(err);
  264. }
  265. else{
  266. console.log(data); res.json(data);
  267. }
  268. });
  269. });
  270.  
  271. //
  272.  
  273. // connect the api routes under /api/*
  274. app.use('/api', apiRoutes);
  275.  
  276.  
  277. //start server
  278. app.listen(port)
  279. console.log('Server strated:' +port );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement