diff --git a/.ssh/known_hosts b/.ssh/known_hosts
index ce2bb80..81381f2 100644
--- a/.ssh/known_hosts
+++ b/.ssh/known_hosts
@@ -1 +1,2 @@
bitbucket.org,104.192.143.2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
+github.com,192.30.253.112 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
diff --git a/app.js b/app.js
index 55a5b16..968ca09 100644
--- a/app.js
+++ b/app.js
@@ -1,31 +1,42 @@
-var express = require('express');
-var path = require('path');
-var favicon = require('serve-favicon');
-var logger = require('morgan');
-var cookieParser = require('cookie-parser');
-var bodyParser = require('body-parser');
-
-var index = require('./routes/index');
+var express = require("express");
+const passport = require("passport");
+var path = require("path");
+var favicon = require("serve-favicon");
+var logger = require("morgan");
+const cookieSession = require("cookie-session");
+var cookieParser = require("cookie-parser");
+var bodyParser = require("body-parser");
+const keys = require("./config/keys");
+
+var index = require("./routes/index");
var app = express();
// view engine setup
-app.set('views', path.join(__dirname, 'views'));
-app.set('view engine', 'jade');
+app.set("views", path.join(__dirname, "views"));
+app.set("view engine", "jade");
// uncomment after placing your favicon in /public
-app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
-app.use(logger('dev'));
+app.use(
+ cookieSession({
+ maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days
+ keys: [keys.cookieKey]
+ })
+);
+app.use(favicon(path.join(__dirname, "public", "favicon.ico")));
+app.use(logger("dev"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
-app.use(express.static(path.join(__dirname, 'public')));
+app.use(express.static(path.join(__dirname, "public")));
+app.use(passport.initialize());
+app.use(passport.session());
-app.use('/', index);
+app.use("/", index);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
- var err = new Error('Not Found');
+ var err = new Error("Not Found");
err.status = 404;
next(err);
});
@@ -34,11 +45,11 @@ app.use(function(req, res, next) {
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
- res.locals.error = req.app.get('env') === 'development' ? err : {};
+ res.locals.error = req.app.get("env") === "development" ? err : {};
// render the error page
res.status(err.status || 500);
- res.render('error');
+ res.render("error");
});
module.exports = app;
diff --git a/bin/www b/bin/www
index 7388df3..077d2e1 100644
--- a/bin/www
+++ b/bin/www
@@ -8,8 +8,25 @@ var app = require('../app');
var debug = require('debug')('pg-node:server');
var http = require('http');
+// /**
+// * Production verification
+// */
+
+// if (process.env.NODE_ENV === 'production') {
+// // Express will serve up production assets
+// // like our main.js file, or main.css file!
+// app.use(express.static('../client/build'));
+
+// // Express will serve up the index.html file
+// // if it doesn't recognize the route
+// const path = require('path');
+// app.get('*', (req, res) => {
+// res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
+// });
+// }
+
/**
- * Get port from environment and store in Express.
+ * Define port
*/
var port = normalizePort(process.env.PORT || '5000');
diff --git a/client/package.json b/client/package.json
index e8fe1cc..58ec9e6 100644
--- a/client/package.json
+++ b/client/package.json
@@ -2,6 +2,23 @@
"name": "client",
"version": "0.1.0",
"private": true,
+ "proxy": {
+ "/map": {
+ "target": "http://localhost:5000"
+ },
+ "/map/pedro": {
+ "target": "http://localhost:5000"
+ },
+ "/stylesheets": {
+ "target": "http://localhost:5000"
+ },
+ "/auth/google": {
+ "target": "http://localhost:5000"
+ },
+ "/auth/google/callback": {
+ "target": "http://localhost:5000"
+ }
+ },
"dependencies": {
"react": "^16.3.2",
"react-dom": "^16.3.2",
diff --git a/client/public/favicon.ico b/client/public/favicon.ico
index a11777c..c9c0f58 100644
Binary files a/client/public/favicon.ico and b/client/public/favicon.ico differ
diff --git a/client/src/App.js b/client/src/App.js
index 8e917a1..dea113e 100644
--- a/client/src/App.js
+++ b/client/src/App.js
@@ -13,6 +13,9 @@ class App extends Component {
To get started, edit src/App.js
and save to reload.
+ Mostra o mapa
+
+ Login Google
);
}
diff --git a/models/User.js b/models/User.js
new file mode 100644
index 0000000..cab31e3
--- /dev/null
+++ b/models/User.js
@@ -0,0 +1,8 @@
+const mongoose = require("mongoose");
+const {Schema} = mongoose;
+
+const userSchema = new Schema({
+ googleId: String
+});
+
+mongoose.model("users", userSchema);
diff --git a/package-lock.json b/package-lock.json
index e82d0ce..89e55ba 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -41,6 +41,16 @@
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
+ "ansi-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
+ "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk="
+ },
+ "ansi-styles": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
+ "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94="
+ },
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
@@ -97,6 +107,11 @@
"safe-buffer": "5.1.1"
}
},
+ "bluebird": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
+ "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw="
+ },
"body-parser": {
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
@@ -114,6 +129,11 @@
"type-is": "1.6.16"
}
},
+ "bson": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.6.tgz",
+ "integrity": "sha512-D8zmlb46xfuK2gGvKmUjIklQEouN2nQ0LEHHeZ/NoHM2LDiMk2EYzZ5Ntw/Urk+bgMDosOZxaRzXxvhI5TcAVQ=="
+ },
"buffer-writer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz",
@@ -138,6 +158,25 @@
"lazy-cache": "1.0.4"
}
},
+ "chalk": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "requires": {
+ "ansi-styles": "1.1.0",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "0.1.0",
+ "strip-ansi": "0.3.0",
+ "supports-color": "0.2.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
+ "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo="
+ }
+ }
+ },
"character-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz",
@@ -184,6 +223,21 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
"integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0="
},
+ "concurrently": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.1.tgz",
+ "integrity": "sha512-689HrwGw8Rbk1xtV9C4dY6TPJAvIYZbRbnKSAtfJ7tHqICFGoZ0PCWYjxfmerRyxBG0o3sbG3pe7N8vqPwIHuQ==",
+ "requires": {
+ "chalk": "0.5.1",
+ "commander": "2.6.0",
+ "date-fns": "1.29.0",
+ "lodash": "4.17.10",
+ "rx": "2.3.24",
+ "spawn-command": "0.0.2-1",
+ "supports-color": "3.2.3",
+ "tree-kill": "1.2.0"
+ }
+ },
"constantinople": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz",
@@ -216,11 +270,41 @@
"cookie-signature": "1.0.6"
}
},
+ "cookie-session": {
+ "version": "2.0.0-beta.3",
+ "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0-beta.3.tgz",
+ "integrity": "sha512-zyqm5tA0z9yMEB/xyP7lnRnqp8eLR2e0dap+9+rBwVigla9yPKn8XTL1jJymog8xjfrowqW2o5LUjixQChkqrw==",
+ "requires": {
+ "cookies": "0.7.1",
+ "debug": "3.1.0",
+ "on-headers": "1.0.1",
+ "safe-buffer": "5.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
+ "cookies": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz",
+ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=",
+ "requires": {
+ "depd": "1.1.2",
+ "keygrip": "1.0.2"
+ }
+ },
"core-js": {
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.4.tgz",
@@ -250,6 +334,11 @@
"resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz",
"integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE="
},
+ "date-fns": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
+ "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw=="
+ },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -288,6 +377,11 @@
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
@@ -381,6 +475,19 @@
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
},
+ "has-ansi": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
+ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "requires": {
+ "ansi-regex": "0.2.1"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
+ },
"http-errors": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
@@ -465,6 +572,16 @@
"promise": "6.1.0"
}
},
+ "kareem": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.0.7.tgz",
+ "integrity": "sha512-p8+lEpsNs4N0fvNOC1/zzDO0wDrD3Pb1G+OwfIG+gKVK3MyY5jeaGYh+9Qx6jb4fEG2b3E6U98vaE9MH7Gilsw=="
+ },
+ "keygrip": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz",
+ "integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E="
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -483,6 +600,16 @@
"resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.2.tgz",
"integrity": "sha512-iCcbXE9okhwznoTXjxVjoGFoKeiWGsgmWPKrPAeHUvtWZWK4t6YF6815D13wZoMxX2UM6tOmD7/VofCxx3S0+w=="
},
+ "lodash": {
+ "version": "4.17.10",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
+ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+ },
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -534,6 +661,56 @@
"minimist": "0.0.8"
}
},
+ "mongodb": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.7.tgz",
+ "integrity": "sha512-n/14kMJEoARXz1qhpNPhUocqy+z5130jhqgEIX1Tsl8UVpHrndQ8et+VmgC4yPK/I8Tcgc93JEMQCHTekBUnNA==",
+ "requires": {
+ "mongodb-core": "3.0.7"
+ }
+ },
+ "mongodb-core": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.7.tgz",
+ "integrity": "sha512-z6YufO7s40wLiv2ssFshqoLS4+Kf+huhHq6KZ7gDArsKNzXYjAwTMnhEIJ9GQ8fIfBGs5tBLNPfbIDoCKGPmOw==",
+ "requires": {
+ "bson": "1.0.6",
+ "require_optional": "1.0.1"
+ }
+ },
+ "mongoose": {
+ "version": "5.0.17",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.0.17.tgz",
+ "integrity": "sha512-RV1WBQhzW7oOhStR+s7LQYfgQWTJm4hgmU3TqtgTiBCfnj5/sNliX2/SY+ef7tpIZRUqEBV5xITZdAlwQ6Ymdg==",
+ "requires": {
+ "async": "2.1.4",
+ "bson": "1.0.6",
+ "kareem": "2.0.7",
+ "lodash.get": "4.4.2",
+ "mongodb": "3.0.7",
+ "mongoose-legacy-pluralize": "1.0.2",
+ "mpath": "0.4.1",
+ "mquery": "3.0.0",
+ "ms": "2.0.0",
+ "regexp-clone": "0.0.1",
+ "sliced": "1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz",
+ "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=",
+ "requires": {
+ "lodash": "4.17.10"
+ }
+ }
+ }
+ },
+ "mongoose-legacy-pluralize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
+ "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
+ },
"morgan": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz",
@@ -546,6 +723,29 @@
"on-headers": "1.0.1"
}
},
+ "mpath": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz",
+ "integrity": "sha512-NNY/MpBkALb9jJmjpBlIi6GRoLveLUM0pJzgbp9vY9F7IQEb/HREC/nxrixechcQwd1NevOhJnWWV8QQQRE+OA=="
+ },
+ "mquery": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz",
+ "integrity": "sha512-WL1Lk8v4l8VFSSwN3yCzY9TXw+fKVYKn6f+w86TRzOLSE8k1yTgGaLBPUByJQi8VcLbOdnUneFV/y3Kv874pnQ==",
+ "requires": {
+ "bluebird": "3.5.0",
+ "debug": "2.6.9",
+ "regexp-clone": "0.0.1",
+ "sliced": "0.0.5"
+ },
+ "dependencies": {
+ "sliced": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz",
+ "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8="
+ }
+ }
+ },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -784,11 +984,37 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
+ "regexp-clone": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz",
+ "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk="
+ },
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
+ "require_optional": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
+ "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
+ "requires": {
+ "resolve-from": "2.0.0",
+ "semver": "5.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
+ },
"right-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
@@ -797,6 +1023,11 @@
"align-text": "0.1.4"
}
},
+ "rx": {
+ "version": "2.3.24",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz",
+ "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc="
+ },
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
@@ -862,6 +1093,11 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
},
+ "sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
+ },
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
@@ -870,6 +1106,11 @@
"amdefine": "1.0.1"
}
},
+ "spawn-command": {
+ "version": "0.0.2-1",
+ "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
+ "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A="
+ },
"split": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
@@ -896,6 +1137,22 @@
"safe-buffer": "5.1.1"
}
},
+ "strip-ansi": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
+ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "requires": {
+ "ansi-regex": "0.2.1"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ },
"tedious": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/tedious/-/tedious-2.3.1.tgz",
@@ -994,6 +1251,11 @@
}
}
},
+ "tree-kill": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
+ "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg=="
+ },
"type-is": {
"version": "1.6.16",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
diff --git a/package.json b/package.json
index f19d598..da9b743 100644
--- a/package.json
+++ b/package.json
@@ -10,17 +10,22 @@
},
"scripts": {
"start": "node ./bin/www",
- "dev": "nodemon ./bin/www"
+ "server": "nodemon ./bin/www",
+ "client": "npm run start --prefix client",
+ "dev": "concurrently \"npm run server\" \"npm run client\""
},
"author": "José Maria Villac Pinheiro",
"dependencies": {
"body-parser": "~1.18.2",
+ "concurrently": "^3.5.1",
"cookie-parser": "~1.4.3",
+ "cookie-session": "^2.0.0-beta.3",
"debug": "~2.6.9",
"express": "~4.15.5",
"jade": "~1.11.0",
"jade-bootstrap": "^1.0.14",
"leaflet-draw": "^1.0.2",
+ "mongoose": "^5.0.17",
"morgan": "~1.9.0",
"mssql": "^4.1.0",
"passport": "^0.4.0",
diff --git a/routes/authRoutes.js b/routes/authRoutes.js
index 55da634..8adcb50 100644
--- a/routes/authRoutes.js
+++ b/routes/authRoutes.js
@@ -26,4 +26,13 @@ module.exports = router => {
res.redirect("/");
}
);
+
+ router.get("/api/logout", (req,res)=>{
+ req.logout();
+ res.send(req.user);
+ });
+
+ router.get("/api/current_user", (req, res)=> {
+ res.send (req.user);
+ });
};
diff --git a/routes/index.js b/routes/index.js
index c992e8f..2101dfb 100644
--- a/routes/index.js
+++ b/routes/index.js
@@ -1,50 +1,19 @@
var express = require("express");
+const mongoose = require ("mongoose");
var router = express.Router();
-require("../services/passport");
-require("../services/databases");
const keys = require("../config/keys");
+require("../models/User");
+const passport = require("../services/passport");
+require("../services/databases");
+
+mongoose.connect(keys.mongoURI);
require("./authRoutes")(router);
+require("./mapRoutes")(router);
/* GET home page. */
router.get("/", function(req, res, next) {
res.render("index", { title: "NEXUS" });
});
-// bounding coordinates to view the map
-var boundSW = [-23.6506647239914, -46.5848434588656]; // lat, long
-var boundNE = [-23.5992830936269, -46.5447524538661];
-
-router.get("/map/:nome", function(req, res, next) {
- var numeroConsumidor = require("../src/findConsumerNumber");
- var coordenadas = require("../src/findCoordinatesFromConsumer");
- var retorno = numeroConsumidor(req.params.nome, function(numero, nome, err) {
- if (err === undefined) {
- console.log("Terminou tudo: " + numero + " Nome: " + nome);
- var codigoComNome = numero + " - " + nome;
- var retorno = coordenadas(numero, function(x, y) {
- console.log("Terminou procura coordenadas x: " + x + " y: " + y);
- res.render("map", {
- codigo: numero,
- consumidor: codigoComNome,
- fator_zoom: 23,
- title: "NEXUS",
- lat: y,
- lng: x,
- bndSW: boundSW,
- bndNE: boundNE,
- geoserverWMS: keys.geoserverWMS,
- waterLayers: keys.waterLayers,
- server: keys.server
- });
- });
- }
- });
-});
-
-router.get(keys.server + "/ponto", function(req, res) {
- var coord = {};
- console.log("Postou: ");
-});
-
module.exports = router;
diff --git a/routes/mapRoutes.js b/routes/mapRoutes.js
new file mode 100644
index 0000000..f629e53
--- /dev/null
+++ b/routes/mapRoutes.js
@@ -0,0 +1,39 @@
+const keys = require("../config/keys");
+
+module.exports = router => {
+ // bounding coordinates to view the map
+ var boundSW = [-23.6506647239914, -46.5848434588656]; // lat, long
+ var boundNE = [-23.5992830936269, -46.5447524538661];
+
+ router.get("/map/:nome", function(req, res, next) {
+ var numeroConsumidor = require("../src/findConsumerNumber");
+ var coordenadas = require("../src/findCoordinatesFromConsumer");
+ var retorno = numeroConsumidor(req.params.nome, function(numero, nome, err) {
+ if (err === undefined) {
+ console.log("Terminou tudo: " + numero + " Nome: " + nome);
+ var codigoComNome = numero + " - " + nome;
+ var retorno = coordenadas(numero, function(x, y) {
+ console.log("Terminou procura coordenadas x: " + x + " y: " + y);
+ res.render("map", {
+ codigo: numero,
+ consumidor: codigoComNome,
+ fator_zoom: 23,
+ title: "NEXUS",
+ lat: y,
+ lng: x,
+ bndSW: boundSW,
+ bndNE: boundNE,
+ geoserverWMS: keys.geoserverWMS,
+ waterLayers: keys.waterLayers,
+ server: keys.server
+ });
+ });
+ }
+ });
+ });
+
+ router.get(keys.server + "/ponto", function(req, res) {
+ var coord = {};
+ console.log("Postou: ");
+ });
+};
\ No newline at end of file
diff --git a/services/passport.js b/services/passport.js
index 27e4182..7b70662 100644
--- a/services/passport.js
+++ b/services/passport.js
@@ -1,21 +1,41 @@
const passport = require("passport");
const GoogleStrategy = require("passport-google-oauth20").Strategy;
-const util = require('util');
+// const util = require("util"); // example: console.log("Profile: " + util.inspect(profile, false, null));
+const mongoose = require("mongoose");
const keys = require("../config/keys");
+const User = mongoose.model("users");
+
+passport.serializeUser((user, done) => {
+ done(null, user.id);
+});
+
+passport.deserializeUser((id, done) => {
+ User.findById(id).then(user => {
+ done(null, user);
+ });
+});
+
passport.use(
- new GoogleStrategy(
- {
- clientID: keys.googleClientID,
- clientSecret: keys.googleClientSecret,
- callbackURL: "/auth/google/callback"
- },
- (accessToken, refreshToken, profile, done) => { // error function
- console.log("Ocorreu um erro");
- console.log("Chave de acesso: " + accessToken);
- console.log("Refresh token: " + refreshToken);
- console.log("Profile: " + util.inspect(profile, false, null));
- }
- )
- );
-
\ No newline at end of file
+ new GoogleStrategy(
+ {
+ clientID: keys.googleClientID,
+ clientSecret: keys.googleClientSecret,
+ callbackURL: "/auth/google/callback"
+ },
+ (accessToken, refreshToken, profile, done) => {
+ // callback function
+ User.findOne({ googleId: profile.id }).then(existingUser => {
+ if (existingUser) {
+ // we already have a record with the given profile ID
+ done(null, existingUser);
+ } else {
+ // we don't have a record with the given profile ID
+ new User({ googleId: profile.id })
+ .save()
+ .then(user => done(null, user));
+ }
+ });
+ }
+ )
+);
diff --git a/views/map.jade b/views/map.jade
index 2ad766b..75990a3 100644
--- a/views/map.jade
+++ b/views/map.jade
@@ -13,7 +13,7 @@ block content
script.
function relocate_home()
{
- location.href = "#{server}/map/" + nome.value;
+ location.href = "/map/" + nome.value;
}
br
#map
@@ -44,8 +44,55 @@ block content
var marker = L.marker([#{lat},#{lng}]).addTo(map);
marker.bindPopup("#{codigo}
#{consumidor}").openPopup();
+ //- var modifiedDraw = L.Control.Draw.extend({
+ //- draw: {
+ //- polygon: false,
+ //- polyline: false,
+ //- line: false,
+ //- circle: false,
+ //- rectangle: false,
+ //- circlemarker: false,
+ //- marker: true,
+ //- toolbar: {
+ //- buttons: {
+ //- marker: 'Cadastra árvore'
+ //- }
+ //- }
+ //- },
+ //- edit: {
+ //- featureGroup: drawnItems
+ //- }
+ //- });
+
+ //- modifiedDraw = L.Control.Draw({
+ //- draw: {
+ //- polygon: false,
+ //- polyline: false,
+ //- line: false,
+ //- circle: false,
+ //- rectangle: false,
+ //- circlemarker: false,
+ //- marker: true
+ //- },
+ //- edit: {
+ //- featureGroup: drawnItems
+ //- },
+ //- });
+
var drawControl = new L.Control.Draw({
draw: {
+ toolbar: {
+ buttons: {
+ marker: 'Draw an awesome polygon'
+ }
+ },
+ handlers: {
+ marker: {
+ tooltip: {
+ start: "Selecione no mapa para colocar uma árvore."
+ }
+ }
+ },
polygon: false,
polyline: false,
line: false,
@@ -56,8 +103,12 @@ block content
},
edit: {
featureGroup: drawnItems
- }
+ },
});
+ L.drawLocal = {
+
+ };
+
map.addControl(drawControl);
// Truncate value based on number of decimals
--
libgit2 0.21.2