Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express =require('express');
- var busboy = require('connect-busboy');
- var app =express();
- var multiparty = require('multiparty');
- var bodyParser =require('body-parser');
- var morgan =require('morgan');
- var mongoose =require('mongoose');
- var passport =require('passport');
- var port =process.env.PORT||3000;
- var jwt =require('jwt-simple');
- var bcrypt =require('bcryptjs');
- var mime =require('mime-types');
- var path =require('path');
- var config =require('./config/database');
- var User =require('./app/models/user');
- var admodel =require('./app/models/admodel');
- var adminModel =require('./app/models/adminmodel');
- var cityModel =require('./app/models/addcitymodel');
- var catModel =require('./app/models/addcatmodel');
- //get our request parameters
- app.use(bodyParser.urlencoded({extended:false}));
- app.use(bodyParser.json());
- //log to console
- app.use(morgan('dev'));
- //use the passport package in our app
- app.use(passport.initialize());
- //demo route(http://localhost:8080)
- app.use(express.static(__dirname+ "/public"));
- app.use(express.static(__dirname+ "/public/assets/images"));
- //connect to database
- mongoose.connect(config.database);
- //pass passport for config
- require('./config/passport')(passport);
- //bunddle route
- var apiRoutes=express.Router();
- //New User registration
- apiRoutes.post('/register', function(req, res, next) {
- if (!req.body.name || !req.body.password) {
- res.json({success: false, msg: 'Please pass Name and Password.'});
- } else {
- var newUser=new User({
- name:req.body.name,
- password:req.body.password,
- mobile:req.body.mobile
- });
- newUser.save(function(err, data){
- if(err){
- return res.json(err);
- res.json({success: false, msg: 'Please try again'});
- }
- else{
- console.log(data);
- res.json({success: true, msg: 'Successfully User registered'});
- }
- })
- }
- });
- // user login
- apiRoutes.put('/login', function(req, res, next){
- User.findOne({name:req.body.name}, function(err, user){
- bcrypt.compare(req.body.password, user.password, function(err, result){
- if(result){
- var token=jwt.encode(user, config.secret);
- return res.json({token:token});
- }else{
- return res.status(400).send();
- }
- })
- })
- })
- //admin login
- apiRoutes.put('/adminlogin', function(req, res, next){
- adminModel.findOne({email:req.body.email}, function(err, admin){
- bcrypt.compare(req.body.password, admin.password, function(err, result){
- if(result){
- var token=jwt.encode(admin, config.secret);
- return res.json({token:token});
- }else{
- return res.status(400).send();
- }
- })
- })
- })
- app.use(busboy());
- //ad post
- apiRoutes.post('/adcreate' ,function(req, res){
- var fstream;
- req.pipe(req.busboy);
- req.busboy.on('file', function (fieldname, file, filename) {
- console.log("Uploading: " + filename);
- //Path where image will be uploaded
- fstream = fs.createWriteStream(__dirname + '/img/' + filename);
- file.pipe(fstream);
- fstream.on('close', function () {
- console.log("Upload Finished of " + filename);
- res.redirect('back'); //where to go next
- });
- });
- req.busboy.on('finish', next);
- var token=req.headers.authorization;
- var owner=jwt.decode(token, config.secret);
- var currentDate=Date.now();
- var adId=Math.floor(Math.random()*13030978)+1;
- var ad=new admodel({
- id:adId,
- title: req.body.title,
- category:req.body.category,
- condition:req.body.condition,
- brand:req.body.brand,
- price:req.body.price,
- city:req.body.city,
- town:req.body.town,
- description:req.body.description,
- date:currentDate,
- ownerId:owner
- }) ;
- ad.save(function(err, data){
- if(err){
- res.json(err);
- return res.json({success:false, msg:'Ad not Posted'});
- }else{
- res.json({succes:true, msg:'Successfully ad Posted'});
- }
- });
- });
- //get ad basis of category
- apiRoutes.get('/getadscat/:category', function(req, res, next){
- admodel.find({category:req.params.category}, function(err, data){
- if(err){res.json(err);}
- else{
- res.json(data);
- }
- }).sort({date: -1});
- })
- //get individual ad
- apiRoutes.get('/individualads/:id', function(req, res,next){
- admodel.findOne({_id:req.params.id}).populate('ownerId').exec(function(err, data){
- if(err){
- res.json(err);
- } else{
- console.log(data);
- res.json(data);
- }
- });
- });
- //fetch ad categories
- apiRoutes.get('/fetchCategories', function(req, res, next){
- categoryModel.find(function(err, data){
- if(err)
- {
- res.json(err);
- res.json({success:false, msg:"Some Error Found"});
- }
- else{
- res.json({success:true, msg:"Successfully Fechted Data"});
- }
- });
- });
- //search ads
- apiRoutes.get('/search/:title/category/:category', function(req,res, next){
- admodel.findOne({title:req.params.title, category:req.params.category}, function(err, data){
- if(err){res.json(err)}
- else{ res.json(data);}
- })
- });
- //add cities
- apiRoutes.post('/addcity', function(req, res, next){
- var city=new cityModel({
- city:req.body.city,
- state:req.body.state
- }) ;
- city.save(function(err, data){
- if(err){
- res.json(err);
- return res.json({success:false, msg:'Not Saved'});
- }else{
- res.json({succes:true, msg:'Successfully Saved'});
- }
- });
- });
- apiRoutes.get('/addcity', function(req, res, next){
- cityModel.find(function(err, data){
- if(err){res.json(err)}
- else{
- res.json(data);
- }
- })
- });
- //add category
- apiRoutes.post('/addcategory', function(req, res, next){
- new catModel({category:req.body.category}).save(function(err, data){
- if(err){res.json(err);return res.json({success:false, msg:'Not Saved'});}
- else{
- res.json({succes:true, msg:'Successfully Saved'});
- }
- });
- });
- apiRoutes.get('/addcategory', function(req, res, next){
- catModel.find(function(err, data){
- if(err){res.json(err)}
- else{
- res.json(data);
- }
- })
- });
- // get all ads
- apiRoutes.get('/getads', function(req, res,next){
- admodel.find({}).populate('ownerId').exec(function(err, data){
- if(err){
- res.json(err);
- } else{
- console.log(data);
- res.json(data);
- }
- });
- })
- apiRoutes.get('/viewads/:id', function(req, res,next){
- admodel.findOne({_id:req.params.id}).populate('ownerId').exec(function(err, data){
- if(err){
- res.json(err);
- } else{
- console.log(data);
- res.json(data);
- }
- });
- });
- //get category in create page
- apiRoutes.get('/getcat', function(req, res, next){
- catModel.find({},function(err, data){
- if(err)
- {
- res.json(err);
- }
- else{
- console.log(data); res.json(data);
- }
- });
- });
- //get city create page
- apiRoutes.get('/getcity', function(req, res, next){
- cityModel.find({},function(err, data){
- if(err)
- {
- res.json(err);
- }
- else{
- console.log(data); res.json(data);
- }
- });
- });
- //
- // connect the api routes under /api/*
- app.use('/api', apiRoutes);
- //start server
- app.listen(port)
- console.log('Server strated:' +port );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement