Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mongoose = require('mongoose');
- var passport = require('passport');
- var config = require('../config/database');
- require('../config/passport')(passport);
- //require('../auth/facebook')(passport);
- var express = require('express');
- var jwt = require('jsonwebtoken');
- var router = express.Router();
- var User = require("../models/user");
- var FileMongo = require("../models/FileMongo");
- var FileSaveMongo = require("../models/FileSaveMongo");
- var ChunkFileSaveMongo = require("../models/ChunkFileSaveMongo");
- var FolderMongo = require("../models/FolderMongo");
- var Book = require("../models/book");
- var fs = require('fs');
- var multer = require('multer');
- //var upload = multer({ dest: './public/' });
- //var mongo = require('mongodb');
- var passportFacebook = require('../auth/facebook');
- var passportGoogle = require('../auth/google');
- var passportGitHub = require('../auth/github');
- var path = require('path');
- var crypto = require('crypto');
- var Grid = require('gridfs-stream');
- var GridFsStorage = require('multer-gridfs-storage');
- var methodOverride = require('method-override');
- //var Grid = require('gridfs-stream');
- //var router = express.Router([options]);
- //var db = new mongo.Db('supfile', new mongo.Server("127.0.0.1", 27017));
- //var FileReader = require('filereader');
- //mongoose.connect('mongodb://localhost:27017/supfile');//, function (err, db) {
- //var conn = mongoose.connection;
- //var mongoURI = 'mongodb://localhost:27017/supfile';
- // db.open(function (err) {
- // if (err) return handleError(err);
- //var conn = mongoose.createConnection(config.database);
- // })
- //mongoose.connect('mongodb://localhost:27017/supfile');
- getStringExtention = function(monFile){
- return ( monFile.name.indexOf('.') > 0 ) ? '.' + monFile.name.split('.').pop().toLowerCase() : '';
- };
- /* creation Token */
- getToken = function (headers) {
- if (headers && headers.authorization) {
- var parted = headers.authorization.split(' ');
- if (parted.length === 2) {
- return parted[1];
- } else {
- return null;
- }
- } else {
- return null;
- }
- };
- /* GET home page. */
- router.get('/', function(req, res, next) {
- res.send('Express RESTful API');
- });
- router.post('/signup', function(req, res) {
- if (!req.body.username || !req.body.password) {
- res.json({success: false, msg: 'Please pass username and password.'});
- } else {
- var newUser = new User({
- username: req.body.username,
- password: req.body.password
- });
- // save the user
- newUser.save(function(err) {
- if (err) {
- //mongoose.disconnect();
- return res.json({success: false, msg: 'Username already exists.'});
- }
- //mongoose.disconnect();
- res.json({success: true, msg: 'Successful created new user.'});
- //mongoose.disconnect();
- });
- }
- });
- /* SAVE FILE */
- router.post('/uploadFileMongo', function(req, res, next) {
- //mongoose.connect(config.database);
- FileMongo.create(req.body, function (err, post) {
- if (err){
- //mongoose.disconnect();
- return next(err);
- }
- //mongoose.disconnect();
- res.json(post);
- });
- });
- //////////////////////////
- router.post('/file', function(req, res){
- //mongoose.connect(config.database);
- console.log('teubbb : ');
- //var ObjectId = mongoose.Types.ObjectId;
- //var gege = ObjectId('5b1440847a35ae2974861db7');
- ChunkFileSaveMongo.find({}, function (err, tabb) {
- if(tabb!==undefined){
- //console.log('chunk.readAsDataURL().toString() : '+tabb[0]);
- console.log('chunk.readAsDataURL().toString() : '+tabb[0].files_id);
- var allProductsArray = tabb.sort({'n':1});
- console.log('oppppppeen 0'+allProductsArray[1].n);
- var allProductsArrayyy = tabb[0].files_id;
- var tabChunkFile=[];
- var tabTemp;
- for (var i = 0; i < allProductsArray.length; i++) {
- //str = str + i;
- console.log('allProductsArray[i].index : ' + allProductsArray[i].n);
- if(allProductsArray[i].files_id === '5b15451859ce310c84c7e374'){
- console.log('allProductsArray[i].index : ');
- //console.log('allProductsArray[i].index : ' + i + ' allProductsArray[i].n :' + allProductsArray[i].n);
- //if(element.n === 1){
- //}
- tabChunkFile.push(allProductsArray[i]) ;
- }
- // if(allProductsArray[i].files_id === '5b15451859ce310c84c7e374'){
- // console.log('allProductsArray[i].index : ' + i + ' allProductsArray[i].n :' + allProductsArray[i].n);
- // //if(element.n === 1){
- //
- // //}
- // if(allProductsArray[i].n === '1'){
- // console.log('cou');
- // tabTemp=allProductsArray[i].data;
- // //console.log('oppppppeen 0 : '+tabTemp[0]);
- // var fbuf = Buffer.from(tabTemp);
- // var base64 = fbuf.toString('base64');
- // //console.log(base64);
- // //mongoose.disconnect();
- // //console.log('coucou tabTemp' + '<img src="data:image/jpeg;base64,' + tabTemp + '">');
- //
- // res.json(base64);
- // }
- // }
- }
- tabChunkFile.sort(function (a, b) {
- return a.n - b.n;
- });
- //tabTemp.sort({'n':1});
- for (var i = 0; i < tabChunkFile.length; i++) {
- console.log('allProductsArray[i].index : ' + i + ' allProductsArray[i].n :' + tabChunkFile[i].n);
- console.log('cou');
- //tabTemp.push(allProductsArray[i]);
- //console.log('oppppppeen 0 : '+tabTemp[0]);
- //var fbuf = Buffer.from([]);
- //var base64 = fbuf.toString('base64');
- //console.log(base64);
- //mongoose.disconnect();
- //console.log('coucou tabTemp' + '<img src="data:image/jpeg;base64,' + tabTemp + '">');
- //res.json(base64);
- }
- var tabTemp='';
- tabChunkFile.forEach(function(element) {
- console.log('cou');
- tabTemp+=element.data;
- //console.log('oppppppeen 0 : '+tabTemp[0]);
- });
- var fbuf = Buffer.from(tabTemp);
- var base64 = fbuf.toString('base64');
- //console.log(base64);
- //mongoose.disconnect();
- //console.log('coucou tabTemp' + '<img src="data:image/jpeg;base64,' + tabTemp + '">');
- res.json(base64);
- allProductsArray.forEach(function(element) {
- //console.log(element.n);
- // if(element.files_id === '5b15451859ce310c84c7e374'){
- // console.log('element.index : ' + element.index + ' element.n :' + element.n);
- // //if(element.n === 1){
- //
- // //}
- // if(element.n === '1'){
- // console.log('cou');
- // tabTemp=element.data;
- // //console.log('oppppppeen 0 : '+tabTemp[0]);
- // var fbuf = Buffer.from(tabTemp);
- // var base64 = fbuf.toString('base64');
- // //console.log(base64);
- // //mongoose.disconnect();
- // //console.log('coucou tabTemp' + '<img src="data:image/jpeg;base64,' + tabTemp + '">');
- //
- // res.json(base64);
- // }
- // }
- });
- //res.json('');
- }
- });
- });
- /* config multer dossier cible et nom du file */
- const storage = multer.diskStorage({
- destination: function (req, file, cb) {
- cb(null, './public/')
- },
- filename: function (req, file, cb) {
- cb(null, file.originalname)
- }
- });
- // conn.once('open', ()=> {
- var gfs = Grid('mongodb://localhost:27017/supfile', mongoose.mongo);
- // var storage = GridFsStorage({
- // url: 'mongodb://localhost:27017/supfile',
- // gfs: gfs,
- // filename: 'tata.jpg',
- // /** With gridfs we can store aditional meta-data along with the file */
- // // metadata: function(req, file, cb) {
- // // cb(null, { originalname: file.originalname });
- // // },
- // root: 'filemongos' //root name for collection to store files into
- // });
- // var upload = multer({storage: storage}).single('file');
- //////////
- /* Multer upload */
- router.post('/upload' , multer({storage: storage, limits: {fileSize: 30000000000}}).array("public[]", 12) ,function(req,res,next){
- res.send(req.files);
- });
- //////important
- // router.post('/uploadFileMongoGridFs', upload, function (req, res) {
- // console.log('req.file' + JSON.stringify({file: req.file}));
- // console.log('req.chunk' + req.file);
- // console.log('req.chunk' + req.file.originalname);
- // FileMongo.create(req.file, function (err, post) {
- // if (err) {
- // return next(err);
- // }
- // //res.json(post);
- // });
- // res.json({file: req.file});
- //
- //
- // });
- //
- // });
- /* SAVE URL FILE */
- router.post('/saveURLFileMongo', function(req, res, next) {
- //mongoose.connect(config.database);
- FileMongo.findOneAndUpdate({_id : req.body._id, owner: req.body.owner}, {url: req.body.url},{new: true}).then((data) =>{
- if(data === null){
- throw new Error('File Not Found');
- }
- //mongoose.disconnect();
- res.json({ message: 'File updated!' });
- }).catch( (error) => {
- //Deal with all your errors here with your preferred error handle middleware / method
- res.status(500).json({ message: 'Some Error!' });
- console.log(error);
- //mongoose.disconnect();
- });
- });
- /* SAVE FOLDER */
- router.post('/createFolder', function(req, res, next) {
- //mongoose.connect(config.database);
- FolderMongo.create(req.body, function (err, post) {
- if (err){
- //mongoose.disconnect();
- return next(err);
- }
- //mongoose.disconnect();
- res.json(post);
- });
- //mongoose.disconnect();
- });
- /* DELETE FILE */
- router.post('/deleteFileMongo', function(req, res, next) {
- //mongoose.connect(config.database);
- console.log('nana : ' + JSON.stringify(req.body));
- FileMongo.remove({_id : req.body._id, name: req.body.name, owner: req.body.owner}, function (err, post) {
- if (err){
- console.log('nana err : ' + err);
- //mongoose.disconnect();
- return next(err);
- }
- //Delete file multer dans Public
- console.log('this.getStringExtention(req.body) : ' + getStringExtention(req.body));
- //fs.unlink('./public/' + req.body._id + getStringExtention(req.body));
- //mongoose.disconnect();
- res.json(post);
- });
- //mongoose.disconnect();
- });
- /* DELETE FOLDER */
- router.post('/deleteFolderMongo', function(req, res, next) {
- //mongoose.connect(config.database);
- FolderMongo.remove({_id : req.body._id, name: req.body.name, owner: req.body.owner}, function (err, post) {
- if (err){
- //mongoose.disconnect();
- return next(err);
- }
- //mongoose.disconnect();
- res.json(post);
- });
- //mongoose.disconnect();
- });
- /* Rename FOLDER */
- router.post('/renameFolderMongo', function(req, res, next) {
- //mongoose.connect(config.database);
- FolderMongo.findOneAndUpdate({_id : req.body._id, owner: req.body.owner}, {name: req.body.name},{new: true}).then((data) =>{
- if(data === null){
- throw new Error('Folder Not Found');
- }
- //mongoose.disconnect();
- res.json({ message: 'Folder updated!' });
- }).catch( (error) => {
- //Deal with all your errors here with your preferred error handle middleware / method
- res.status(500).json({ message: 'Some Error!' });
- console.log(error);
- //mongoose.disconnect();
- });
- //mongoose.disconnect();
- });
- /* Move Folder */
- router.post('/moveFolder', function(req, res, next) {
- //mongoose.connect(config.database);
- FolderMongo.findOneAndUpdate({_id : req.body._id, owner: req.body.owner}, {path: req.body.path, parent: req.body.parent},{new: true}).then((data) =>{
- if(data === null){
- throw new Error('Folder Not Found');
- }
- //mongoose.disconnect();
- res.json({ message: 'Folder updated!' });
- }).catch( (error) => {
- //Deal with all your errors here with your preferred error handle middleware / method
- res.status(500).json({ message: 'Some Error!' });
- console.log(error);
- //mongoose.disconnect();
- });
- //mongoose.disconnect();
- });
- /* Move File */
- router.post('/moveFile', function(req, res, next) {
- //mongoose.connect(config.database);
- FileMongo.findOneAndUpdate({_id : req.body._id, owner: req.body.owner}, {path: req.body.path},{new: true}).then((data) =>{
- if(data === null){
- throw new Error('File Not Found');
- }
- //mongoose.disconnect();
- res.json({ message: 'File updated!' });
- }).catch( (error) => {
- //Deal with all your errors here with your preferred error handle middleware / method
- res.status(500).json({ message: 'Some Error!' });
- console.log(error);
- //mongoose.disconnect();
- });
- //mongoose.disconnect();
- });
- /* Rename FILE */
- router.post('/renameFileMongo', function(req, res, next) {
- //mongoose.connect(config.database);
- FileMongo.findOneAndUpdate({_id : req.body._id, owner: req.body.owner}, {name: req.body.name},{new: true}).then((data) =>{
- if(data === null){
- throw new Error('File Not Found');
- }
- //mongoose.disconnect();
- res.json({ message: 'File updated!' });
- }).catch( (error) => {
- //Deal with all your errors here with your preferred error handle middleware / method
- res.status(500).json({ message: 'Some Error!' });
- console.log(error);
- //mongoose.disconnect();
- });
- //mongoose.disconnect();
- });
- /* Get Current folder */
- router.post('/getMainFolder', function(req, res) {
- //mongoose.connect(config.database);
- FolderMongo.findOne({
- path: req.body.path,
- owner: req.body.owner
- }, function(err, folder) {
- //mongoose.disconnect();
- res.json(folder);
- });
- //mongoose.disconnect();
- });
- /* Get tout les folders du mainFolder */
- router.post('/getFolderList', function(req, res) {
- //mongoose.connect(config.database);
- FolderMongo.find({
- parent: req.body.mainPath,
- owner: req.body.owner
- }, function(err, folder) {
- //mongoose.disconnect();
- res.json(folder);
- });
- //mongoose.disconnect(config.database);
- });
- /* Get tout les folders du user */
- router.post('/getFolderAppList', function(req, res) {
- //mongoose.connect(config.database);
- FolderMongo.find({
- owner: req.body.owner
- }, function(err, folder) {
- res.json(folder);
- });
- //mongoose.disconnect();
- });
- /* Get tout les files du user */
- router.post('/getFileAppList', function(req, res) {
- //mongoose.connect(config.database);
- FileMongo.find({
- owner: req.body.owner
- }, function(err, file) {
- res.json(file);
- });
- //mongoose.disconnect();
- });
- /* Get tout les files du mainFolder */
- router.post('/getFileList', function(req, res) {
- //mongoose.connect(config.database);
- FileMongo.find({
- path: req.body.mainPath,
- owner: req.body.owner
- }, function(err, files) {
- res.json(files);
- });
- //mongoose.disconnect();
- });
- /* Login */
- router.post('/signin', function(req, res) {
- //mongoose.connect(config.database);
- User.findOne({
- username: req.body.username
- }, function(err, user) {
- if (err) throw err;
- if (!user) {
- res.status(401).send({success: false, msg: 'Authentication failed. User not found.'});
- } else {
- // check if password matches
- user.comparePassword(req.body.password, function (err, isMatch) {
- if (isMatch && !err) {
- console.log('req.user.username log : ' + JSON.stringify(user));
- // if user is found and password is right create a token
- var token = jwt.sign(user.toJSON(), config.secret);
- // return the information including token as JSON
- res.json({success: true, token: 'JWT ' + token});
- } else {
- res.status(401).send({success: false, msg: 'Authentication failed. Wrong password.'});
- }
- });
- }
- });
- //mongoose.disconnect();
- });
- /* Get utilisateur courant */
- router.get('/getCurrentUser', passport.authenticate('jwt', { session: false}), function(req, res) {
- //mongoose.connect(config.database);
- var token = getToken(req.headers);
- if (token) {
- res.json(req.user);
- } else {
- return res.status(403).send({success: false, msg: 'Unauthorized.'});
- }
- //mongoose.disconnect();
- });
- ////////////
- /* GET users listing. */
- router.get('/', ensureAuthenticated, function(req, res, next) {
- //mongoose.connect(config.database);
- res.render('user', { user: req.user });
- //mongoose.disconnect();
- });
- function ensureAuthenticated(req, res, next) {
- if (req.isAuthenticated()) { return next(); }
- res.redirect('/api/login');
- }
- /* FACEBOOK ROUTER */
- router.get('/facebook', passportFacebook.authenticate('facebook'));
- ///////////////////
- router.get('/facebook/callback',
- passportFacebook.authenticate('facebook', { failureRedirect: 'api/' }),
- function(req, res) {
- console.log('faceeeeboookk !!');
- // Successful authentication, redirect home.
- res.redirect('/api/main');
- });
- // router.get('/facebook/callback/:id', passport.authenticate('facebook'), function(req, res, err, user, info){
- // console.log('faceeeeboookk !!');
- //
- // //console.log('faceeeeboookk !!' + JSON.stringify(req));
- // //console.log('faceeeeboookk !!' + JSON.stringify(res));
- // //console.log('faceeeeboookk !!' + next);
- //
- // // console.log('yaaaaaaTTTTa ' + JSON.stringify(user));
- // // if(err){
- // // console.log('errrrooor : ' + err);
- // // //if(res){
- // // //res.json({ error: err });
- // // return next(err);
- // // //}
- // //
- // // }
- // // console.log('req.user.username log : ' + err + info);
- // // // Successful authentication, redirect home.
- // // if(user){
- // // User.findOne({username: user.profile.displayName},function(err,result){
- // // if(!result){
- // // var newUser = new User({username: user.profile.displayName, id: user.profile.id, password: 'couille'});
- // // // save the user
- // // console.log('rererer : '+ JSON.stringify(newUser));
- // // newUser.save(function(err) {
- // // if (err) {
- // // console.log('err already exists.' + err);
- // // }
- // // console.log('Successful created new user.');
- // // return req.res.redirect('/main');
- // //
- // // });
- // // }else{
- // // return next(err);
- // // }
- // // });
- // // }else{
- // // return req.res.redirect('/login');
- // // }
- //
- //
- //
- // });
- // router.get('/facebook',
- // passportFacebook.authenticate('facebook', { scope: ['read_stream', 'publish_actions'] })
- // );
- /* GOOGLE ROUTER */
- router.get('/google', passportGoogle.authenticate('google', { scope: 'https://www.google.com/m8/feeds' }));
- router.get('/google/callback', passportGoogle.authenticate('google', { successRedirect : '/', failureRedirect: '/login' }), function(req, res) {
- res.redirect('/');
- });
- router.get('/google',
- passport.authenticate('google', { scope: ['read_stream', 'publish_actions'] })
- );
- /* GITHUB ROUTER */
- router.get('/github', passportGitHub.authenticate('github', { scope: [ 'user:email' ] }));
- router.get('/auth/github/callback', passportGitHub.authenticate('github', { successRedirect : '/', failureRedirect: '/login' }), function(req, res) {
- // Successful authentication, redirect home.
- res.redirect('/');
- });
- router.get('/github',
- passport.authenticate('github', { scope: ['read_stream', 'publish_actions'] })
- );
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement