Skip to content
Snippets Groups Projects
Commit 7b70b028 authored by noe.fleury's avatar noe.fleury :computer:
Browse files

Merge and add

parent ebe0acbb
Branches
No related tags found
No related merge requests found
......@@ -26,7 +26,6 @@ CREATE TABLE IF NOT EXISTS Files (
paths varchar(400) NOT NULL,
lat FLOAT,
lng FLOAT,
addedon INT,
PRIMARY KEY (file_id),
FOREIGN KEY (paths) REFERENCES Paths(paths),
FOREIGN KEY (login) REFERENCES Users(login)
......@@ -66,13 +65,13 @@ VALUES
INSERT INTO Files
VALUES
("abcd", "un", 'a', "/a", 46.2054, 6.1459, 1576691707),
("ab", "deux", 'a', "/a", 46.2054, 6.1459, 1576691707),
("@dfsg", "trois", 'c', "/c/test", 46.2054, 6.1459, 1576691707),
("gbvaf", "quatre", 'b', "/b", 46.2054, 6.1459, 1576691707),
("dsfgh", "cinq", 'd', "/d", 46.2054, 6.1459, 1576691707),
("sdfa", "six.txt", 'e', "/e", 46.2054, 6.1459, 1576691707),
("liblb", "myfile.txt", 'noe', "/n", 46.2054, 6.1459, 1576691707);
("abcd", "un", 'a', "/a", 46.2054, 6.1459),
("ab", "deux", 'a', "/a", 46.2054, 6.1459),
("@dfsg", "trois", 'c', "/c/test", 46.2054, 6.1459),
("gbvaf", "quatre", 'b', "/b", 46.2054, 6.1459),
("dsfgh", "cinq", 'd', "/d", 46.2054, 6.1459),
("sdfa", "six.txt", 'e', "/e", 46.2054, 6.1459),
("liblb", "myfile.txt", 'noe', "/n", 46.2054, 6.1459);
INSERT INTO Shares
VALUES
......
......@@ -34,6 +34,11 @@
<div id="content-drive">
</div>
<form action="/upload/n" method="POST" encType="multipart/form-data">
Choose a file :<br>
<input type="file" name="my_file"><br>
<input type="submit" value="Send">
</form>
</div>
<div id="info">
<h3>Infos</h3>
......
"use strict";
const CryptoJS = require("crypto-js");
const http = require("http");
var fileupload = require("express-fileupload");
var multer = require('multer')
var storage = multer.diskStorage(
{
destination: './files/',
filename: function ( req, file, cb ) {
cb( null, Math.round(Math.random()*100) + Date.now().toString() );
}
}
);
var upload = multer( { storage: storage } );
const express = require('express');
const app = express();
......@@ -260,35 +274,76 @@ app.get('/share/:file_id/:to_user', (req, res) => {
/**
* Request to upload a file
*/
app.get('/upload/', (req, res) => {
let d = new Date();
let date_upload = d.getTime();
// "abcd", "un", "/a", 46.2054, 6.1459, date_upload
http.get('http://bot.whatismyipaddress.com', (res) => {
res.setEncoding('utf8');
res.on('data', function(chunk){
console.log(chunk);
let ip = chunk;
http.get('http://ip-api.com/json/' + ip, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
// app.get('/upload/', (req, res) => {
// let d = new Date();
// let date_upload = d.getTime();
// // "abcd", "un", "/a", 46.2054, 6.1459, date_upload
// res.send(`Request for an upload (${req.query['file']})`)
// });
resp.on('end', () => {
console.log(JSON.parse(data));
app.post('/upload*', upload.single('my_file'), (req, res) => {
// res.send(`Request for an upload (${req.query['file']})`)
let token = req.query["token"]
let user = verify_token(token)
if (user){
let path = req.params['0']
if (req.file){
var file_id = Math.round(Math.random() * 100) + Date.now();
var file_name = "test"
let lat;
let lon;
http.get('http://bot.whatismyipaddress.com', (result) => {
result.setEncoding('utf8');
result.on('data', function(chunk){
let ip = chunk;
http.get('http://ip-api.com/json/' + ip, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
lat = JSON.parse(data).lat.toFixed(3);
lon = JSON.parse(data).lon.toFixed(3);
// add to BDD
sql.addFile(file_id, file_name, user, path, lat, lon, (result) => {
res.send(result)
})
});
});
});
});
});
});
}
else{
console.log("Please enter a file");
}
}
else{
res.send("Please be connected")
}
res.send(`Request for an upload (${req.query['file']})`)
});
})
app.get('/download/:file_id', (req, res) => {
let token = req.query["token"]
let file_id = req.params["file_id"]
let user = verify_token(token);
if (user){
......@@ -385,4 +440,6 @@ app.get('/show-shared-file', (req, res) => {
});
app.use(express.static('front'));
app.use(fileupload());
var upload = multer({ dest: "files/" })
app.listen(port, () => console.log(`Hyperdrive listening on port ${port}!`))
......@@ -13,6 +13,11 @@
"negotiator": "0.6.2"
}
},
"append-field": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
"integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
......@@ -40,11 +45,35 @@
"type-is": "~1.6.17"
}
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"busboy": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
"integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
"requires": {
"dicer": "0.3.0"
}
},
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
"concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"requires": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
"content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
......@@ -96,6 +125,14 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"dicer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
"integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
"requires": {
"streamsearch": "0.1.2"
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
......@@ -153,6 +190,14 @@
"vary": "~1.1.2"
}
},
"express-fileupload": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.1.6.tgz",
"integrity": "sha512-w24zPWT8DkoIxSVkbxYPo9hkTiLpCQQzNsLRTCnecBhfbYv+IkIC5uLw2MIUAxBZ+7UMmXPjGxlhzUXo4RcbZw==",
"requires": {
"busboy": "^0.3.1"
}
},
"finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
......@@ -245,11 +290,80 @@
"mime-db": "1.42.0"
}
},
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"multer": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
"integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
"requires": {
"append-field": "^1.0.0",
"busboy": "^0.2.11",
"concat-stream": "^1.5.2",
"mkdirp": "^0.5.1",
"object-assign": "^4.1.1",
"on-finished": "^2.3.0",
"type-is": "^1.6.4",
"xtend": "^4.0.0"
},
"dependencies": {
"busboy": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
"integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
"requires": {
"dicer": "0.2.5",
"readable-stream": "1.1.x"
}
},
"dicer": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
"integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
"requires": {
"readable-stream": "1.1.x",
"streamsearch": "0.1.2"
}
},
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"readable-stream": {
"version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "0.0.1",
"string_decoder": "~0.10.x"
}
},
"string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
}
}
},
"mysql": {
"version": "2.17.1",
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.17.1.tgz",
......@@ -266,6 +380,11 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
......@@ -396,6 +515,11 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"streamsearch": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
"integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
......@@ -418,6 +542,11 @@
"mime-types": "~2.1.24"
}
},
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
......@@ -437,6 +566,11 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
}
}
}
......@@ -11,6 +11,8 @@
"dependencies": {
"crypto-js": "^3.1.9-1",
"express": "^4.17.1",
"express-fileupload": "^1.1.6",
"multer": "^1.4.2",
"mysql": "^2.17.1"
}
}
......@@ -247,6 +247,44 @@ function getSharedFile(user, callback){
});
}
function addFile(file_id, file_name, login, paths, lat, lon, callback){
var q = `
SELECT COUNT(paths)
FROM Paths
WHERE paths = '${paths}'
AND login = '${login}'
`;
con.query(q, (err, resp) => {
if (err) {
console.log(err);
return callback(false, err);
}
if (resp[0]["COUNT(paths)"] > 0){
var q = `
INSERT INTO Files
VALUES ('${file_id}', '${file_name}', '${login}', '${paths}', '${lat}', '${lon}')
`;
con.query(q, (err, resp) => {
if (err) {
console.log(err);
return callback(false, err);
}
return callback("ok");
})
}
// return callback(resp);
});
}
exports.userExist = userExist;
exports.addUser = addUser;
exports.addPath = addPath;
......@@ -255,4 +293,5 @@ exports.changeDirectory = changeDirectory;
exports.createPath = createPath;
exports.verifyFileID = verifyFileID;
exports.getInfo = getInfo;
exports.getSharedFile = getSharedFile;
\ No newline at end of file
exports.getSharedFile = getSharedFile;
exports.addFile = addFile;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment