Commit b86001458d32bdc932dfc9bcc2e0d08192c7c0e4
1 parent
5b7c47f2
Exists in
master
and in
1 other branch
V. 0.4.0 - Finalizada a autenticação
Showing
14 changed files
with
487 additions
and
75 deletions
Show diff stats
.ssh/known_hosts
1 | 1 | bitbucket.org,104.192.143.2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw== |
2 | +github.com,192.30.253.112 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== | ... | ... |
app.js
1 | -var express = require('express'); | |
2 | -var path = require('path'); | |
3 | -var favicon = require('serve-favicon'); | |
4 | -var logger = require('morgan'); | |
5 | -var cookieParser = require('cookie-parser'); | |
6 | -var bodyParser = require('body-parser'); | |
7 | - | |
8 | -var index = require('./routes/index'); | |
1 | +var express = require("express"); | |
2 | +const passport = require("passport"); | |
3 | +var path = require("path"); | |
4 | +var favicon = require("serve-favicon"); | |
5 | +var logger = require("morgan"); | |
6 | +const cookieSession = require("cookie-session"); | |
7 | +var cookieParser = require("cookie-parser"); | |
8 | +var bodyParser = require("body-parser"); | |
9 | +const keys = require("./config/keys"); | |
10 | + | |
11 | +var index = require("./routes/index"); | |
9 | 12 | |
10 | 13 | var app = express(); |
11 | 14 | |
12 | 15 | // view engine setup |
13 | -app.set('views', path.join(__dirname, 'views')); | |
14 | -app.set('view engine', 'jade'); | |
16 | +app.set("views", path.join(__dirname, "views")); | |
17 | +app.set("view engine", "jade"); | |
15 | 18 | |
16 | 19 | // uncomment after placing your favicon in /public |
17 | -app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); | |
18 | -app.use(logger('dev')); | |
20 | +app.use( | |
21 | + cookieSession({ | |
22 | + maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days | |
23 | + keys: [keys.cookieKey] | |
24 | + }) | |
25 | +); | |
26 | +app.use(favicon(path.join(__dirname, "public", "favicon.ico"))); | |
27 | +app.use(logger("dev")); | |
19 | 28 | app.use(bodyParser.json()); |
20 | 29 | app.use(bodyParser.urlencoded({ extended: false })); |
21 | 30 | app.use(cookieParser()); |
22 | -app.use(express.static(path.join(__dirname, 'public'))); | |
31 | +app.use(express.static(path.join(__dirname, "public"))); | |
32 | +app.use(passport.initialize()); | |
33 | +app.use(passport.session()); | |
23 | 34 | |
24 | -app.use('/', index); | |
35 | +app.use("/", index); | |
25 | 36 | |
26 | 37 | // catch 404 and forward to error handler |
27 | 38 | app.use(function(req, res, next) { |
28 | - var err = new Error('Not Found'); | |
39 | + var err = new Error("Not Found"); | |
29 | 40 | err.status = 404; |
30 | 41 | next(err); |
31 | 42 | }); |
... | ... | @@ -34,11 +45,11 @@ app.use(function(req, res, next) { |
34 | 45 | app.use(function(err, req, res, next) { |
35 | 46 | // set locals, only providing error in development |
36 | 47 | res.locals.message = err.message; |
37 | - res.locals.error = req.app.get('env') === 'development' ? err : {}; | |
48 | + res.locals.error = req.app.get("env") === "development" ? err : {}; | |
38 | 49 | |
39 | 50 | // render the error page |
40 | 51 | res.status(err.status || 500); |
41 | - res.render('error'); | |
52 | + res.render("error"); | |
42 | 53 | }); |
43 | 54 | |
44 | 55 | module.exports = app; | ... | ... |
bin/www
... | ... | @@ -8,8 +8,25 @@ var app = require('../app'); |
8 | 8 | var debug = require('debug')('pg-node:server'); |
9 | 9 | var http = require('http'); |
10 | 10 | |
11 | +// /** | |
12 | +// * Production verification | |
13 | +// */ | |
14 | + | |
15 | +// if (process.env.NODE_ENV === 'production') { | |
16 | +// // Express will serve up production assets | |
17 | +// // like our main.js file, or main.css file! | |
18 | +// app.use(express.static('../client/build')); | |
19 | + | |
20 | +// // Express will serve up the index.html file | |
21 | +// // if it doesn't recognize the route | |
22 | +// const path = require('path'); | |
23 | +// app.get('*', (req, res) => { | |
24 | +// res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html')); | |
25 | +// }); | |
26 | +// } | |
27 | + | |
11 | 28 | /** |
12 | - * Get port from environment and store in Express. | |
29 | + * Define port | |
13 | 30 | */ |
14 | 31 | |
15 | 32 | var port = normalizePort(process.env.PORT || '5000'); | ... | ... |
client/package.json
... | ... | @@ -2,6 +2,23 @@ |
2 | 2 | "name": "client", |
3 | 3 | "version": "0.1.0", |
4 | 4 | "private": true, |
5 | + "proxy": { | |
6 | + "/map": { | |
7 | + "target": "http://localhost:5000" | |
8 | + }, | |
9 | + "/map/pedro": { | |
10 | + "target": "http://localhost:5000" | |
11 | + }, | |
12 | + "/stylesheets": { | |
13 | + "target": "http://localhost:5000" | |
14 | + }, | |
15 | + "/auth/google": { | |
16 | + "target": "http://localhost:5000" | |
17 | + }, | |
18 | + "/auth/google/callback": { | |
19 | + "target": "http://localhost:5000" | |
20 | + } | |
21 | + }, | |
5 | 22 | "dependencies": { |
6 | 23 | "react": "^16.3.2", |
7 | 24 | "react-dom": "^16.3.2", | ... | ... |
client/public/favicon.ico
No preview for this file type
client/src/App.js
... | ... | @@ -13,6 +13,9 @@ class App extends Component { |
13 | 13 | <p className="App-intro"> |
14 | 14 | To get started, edit <code>src/App.js</code> and save to reload. |
15 | 15 | </p> |
16 | + <a href="/map/pedro">Mostra o mapa</a> | |
17 | + <p></p> | |
18 | + <a href="/auth/google">Login Google</a> | |
16 | 19 | </div> |
17 | 20 | ); |
18 | 21 | } | ... | ... |
package-lock.json
... | ... | @@ -41,6 +41,16 @@ |
41 | 41 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", |
42 | 42 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" |
43 | 43 | }, |
44 | + "ansi-regex": { | |
45 | + "version": "0.2.1", | |
46 | + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", | |
47 | + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=" | |
48 | + }, | |
49 | + "ansi-styles": { | |
50 | + "version": "1.1.0", | |
51 | + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", | |
52 | + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=" | |
53 | + }, | |
44 | 54 | "array-flatten": { |
45 | 55 | "version": "1.1.1", |
46 | 56 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", |
... | ... | @@ -97,6 +107,11 @@ |
97 | 107 | "safe-buffer": "5.1.1" |
98 | 108 | } |
99 | 109 | }, |
110 | + "bluebird": { | |
111 | + "version": "3.5.0", | |
112 | + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", | |
113 | + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" | |
114 | + }, | |
100 | 115 | "body-parser": { |
101 | 116 | "version": "1.18.2", |
102 | 117 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", |
... | ... | @@ -114,6 +129,11 @@ |
114 | 129 | "type-is": "1.6.16" |
115 | 130 | } |
116 | 131 | }, |
132 | + "bson": { | |
133 | + "version": "1.0.6", | |
134 | + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.6.tgz", | |
135 | + "integrity": "sha512-D8zmlb46xfuK2gGvKmUjIklQEouN2nQ0LEHHeZ/NoHM2LDiMk2EYzZ5Ntw/Urk+bgMDosOZxaRzXxvhI5TcAVQ==" | |
136 | + }, | |
117 | 137 | "buffer-writer": { |
118 | 138 | "version": "1.0.1", |
119 | 139 | "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz", |
... | ... | @@ -138,6 +158,25 @@ |
138 | 158 | "lazy-cache": "1.0.4" |
139 | 159 | } |
140 | 160 | }, |
161 | + "chalk": { | |
162 | + "version": "0.5.1", | |
163 | + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", | |
164 | + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", | |
165 | + "requires": { | |
166 | + "ansi-styles": "1.1.0", | |
167 | + "escape-string-regexp": "1.0.5", | |
168 | + "has-ansi": "0.1.0", | |
169 | + "strip-ansi": "0.3.0", | |
170 | + "supports-color": "0.2.0" | |
171 | + }, | |
172 | + "dependencies": { | |
173 | + "supports-color": { | |
174 | + "version": "0.2.0", | |
175 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", | |
176 | + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=" | |
177 | + } | |
178 | + } | |
179 | + }, | |
141 | 180 | "character-parser": { |
142 | 181 | "version": "1.2.1", |
143 | 182 | "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz", |
... | ... | @@ -184,6 +223,21 @@ |
184 | 223 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", |
185 | 224 | "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=" |
186 | 225 | }, |
226 | + "concurrently": { | |
227 | + "version": "3.5.1", | |
228 | + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.1.tgz", | |
229 | + "integrity": "sha512-689HrwGw8Rbk1xtV9C4dY6TPJAvIYZbRbnKSAtfJ7tHqICFGoZ0PCWYjxfmerRyxBG0o3sbG3pe7N8vqPwIHuQ==", | |
230 | + "requires": { | |
231 | + "chalk": "0.5.1", | |
232 | + "commander": "2.6.0", | |
233 | + "date-fns": "1.29.0", | |
234 | + "lodash": "4.17.10", | |
235 | + "rx": "2.3.24", | |
236 | + "spawn-command": "0.0.2-1", | |
237 | + "supports-color": "3.2.3", | |
238 | + "tree-kill": "1.2.0" | |
239 | + } | |
240 | + }, | |
187 | 241 | "constantinople": { |
188 | 242 | "version": "3.0.2", |
189 | 243 | "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz", |
... | ... | @@ -216,11 +270,41 @@ |
216 | 270 | "cookie-signature": "1.0.6" |
217 | 271 | } |
218 | 272 | }, |
273 | + "cookie-session": { | |
274 | + "version": "2.0.0-beta.3", | |
275 | + "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0-beta.3.tgz", | |
276 | + "integrity": "sha512-zyqm5tA0z9yMEB/xyP7lnRnqp8eLR2e0dap+9+rBwVigla9yPKn8XTL1jJymog8xjfrowqW2o5LUjixQChkqrw==", | |
277 | + "requires": { | |
278 | + "cookies": "0.7.1", | |
279 | + "debug": "3.1.0", | |
280 | + "on-headers": "1.0.1", | |
281 | + "safe-buffer": "5.1.1" | |
282 | + }, | |
283 | + "dependencies": { | |
284 | + "debug": { | |
285 | + "version": "3.1.0", | |
286 | + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", | |
287 | + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", | |
288 | + "requires": { | |
289 | + "ms": "2.0.0" | |
290 | + } | |
291 | + } | |
292 | + } | |
293 | + }, | |
219 | 294 | "cookie-signature": { |
220 | 295 | "version": "1.0.6", |
221 | 296 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", |
222 | 297 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" |
223 | 298 | }, |
299 | + "cookies": { | |
300 | + "version": "0.7.1", | |
301 | + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz", | |
302 | + "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", | |
303 | + "requires": { | |
304 | + "depd": "1.1.2", | |
305 | + "keygrip": "1.0.2" | |
306 | + } | |
307 | + }, | |
224 | 308 | "core-js": { |
225 | 309 | "version": "2.5.4", |
226 | 310 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.4.tgz", |
... | ... | @@ -250,6 +334,11 @@ |
250 | 334 | "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz", |
251 | 335 | "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=" |
252 | 336 | }, |
337 | + "date-fns": { | |
338 | + "version": "1.29.0", | |
339 | + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", | |
340 | + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==" | |
341 | + }, | |
253 | 342 | "debug": { |
254 | 343 | "version": "2.6.9", |
255 | 344 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", |
... | ... | @@ -288,6 +377,11 @@ |
288 | 377 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", |
289 | 378 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" |
290 | 379 | }, |
380 | + "escape-string-regexp": { | |
381 | + "version": "1.0.5", | |
382 | + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", | |
383 | + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" | |
384 | + }, | |
291 | 385 | "etag": { |
292 | 386 | "version": "1.8.1", |
293 | 387 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", |
... | ... | @@ -381,6 +475,19 @@ |
381 | 475 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", |
382 | 476 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" |
383 | 477 | }, |
478 | + "has-ansi": { | |
479 | + "version": "0.1.0", | |
480 | + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", | |
481 | + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", | |
482 | + "requires": { | |
483 | + "ansi-regex": "0.2.1" | |
484 | + } | |
485 | + }, | |
486 | + "has-flag": { | |
487 | + "version": "1.0.0", | |
488 | + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", | |
489 | + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" | |
490 | + }, | |
384 | 491 | "http-errors": { |
385 | 492 | "version": "1.6.2", |
386 | 493 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", |
... | ... | @@ -465,6 +572,16 @@ |
465 | 572 | "promise": "6.1.0" |
466 | 573 | } |
467 | 574 | }, |
575 | + "kareem": { | |
576 | + "version": "2.0.7", | |
577 | + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.0.7.tgz", | |
578 | + "integrity": "sha512-p8+lEpsNs4N0fvNOC1/zzDO0wDrD3Pb1G+OwfIG+gKVK3MyY5jeaGYh+9Qx6jb4fEG2b3E6U98vaE9MH7Gilsw==" | |
579 | + }, | |
580 | + "keygrip": { | |
581 | + "version": "1.0.2", | |
582 | + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz", | |
583 | + "integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E=" | |
584 | + }, | |
468 | 585 | "kind-of": { |
469 | 586 | "version": "3.2.2", |
470 | 587 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", |
... | ... | @@ -483,6 +600,16 @@ |
483 | 600 | "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.2.tgz", |
484 | 601 | "integrity": "sha512-iCcbXE9okhwznoTXjxVjoGFoKeiWGsgmWPKrPAeHUvtWZWK4t6YF6815D13wZoMxX2UM6tOmD7/VofCxx3S0+w==" |
485 | 602 | }, |
603 | + "lodash": { | |
604 | + "version": "4.17.10", | |
605 | + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", | |
606 | + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" | |
607 | + }, | |
608 | + "lodash.get": { | |
609 | + "version": "4.4.2", | |
610 | + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", | |
611 | + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" | |
612 | + }, | |
486 | 613 | "longest": { |
487 | 614 | "version": "1.0.1", |
488 | 615 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", |
... | ... | @@ -534,6 +661,56 @@ |
534 | 661 | "minimist": "0.0.8" |
535 | 662 | } |
536 | 663 | }, |
664 | + "mongodb": { | |
665 | + "version": "3.0.7", | |
666 | + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.7.tgz", | |
667 | + "integrity": "sha512-n/14kMJEoARXz1qhpNPhUocqy+z5130jhqgEIX1Tsl8UVpHrndQ8et+VmgC4yPK/I8Tcgc93JEMQCHTekBUnNA==", | |
668 | + "requires": { | |
669 | + "mongodb-core": "3.0.7" | |
670 | + } | |
671 | + }, | |
672 | + "mongodb-core": { | |
673 | + "version": "3.0.7", | |
674 | + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.7.tgz", | |
675 | + "integrity": "sha512-z6YufO7s40wLiv2ssFshqoLS4+Kf+huhHq6KZ7gDArsKNzXYjAwTMnhEIJ9GQ8fIfBGs5tBLNPfbIDoCKGPmOw==", | |
676 | + "requires": { | |
677 | + "bson": "1.0.6", | |
678 | + "require_optional": "1.0.1" | |
679 | + } | |
680 | + }, | |
681 | + "mongoose": { | |
682 | + "version": "5.0.17", | |
683 | + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.0.17.tgz", | |
684 | + "integrity": "sha512-RV1WBQhzW7oOhStR+s7LQYfgQWTJm4hgmU3TqtgTiBCfnj5/sNliX2/SY+ef7tpIZRUqEBV5xITZdAlwQ6Ymdg==", | |
685 | + "requires": { | |
686 | + "async": "2.1.4", | |
687 | + "bson": "1.0.6", | |
688 | + "kareem": "2.0.7", | |
689 | + "lodash.get": "4.4.2", | |
690 | + "mongodb": "3.0.7", | |
691 | + "mongoose-legacy-pluralize": "1.0.2", | |
692 | + "mpath": "0.4.1", | |
693 | + "mquery": "3.0.0", | |
694 | + "ms": "2.0.0", | |
695 | + "regexp-clone": "0.0.1", | |
696 | + "sliced": "1.0.1" | |
697 | + }, | |
698 | + "dependencies": { | |
699 | + "async": { | |
700 | + "version": "2.1.4", | |
701 | + "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", | |
702 | + "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", | |
703 | + "requires": { | |
704 | + "lodash": "4.17.10" | |
705 | + } | |
706 | + } | |
707 | + } | |
708 | + }, | |
709 | + "mongoose-legacy-pluralize": { | |
710 | + "version": "1.0.2", | |
711 | + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", | |
712 | + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" | |
713 | + }, | |
537 | 714 | "morgan": { |
538 | 715 | "version": "1.9.0", |
539 | 716 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz", |
... | ... | @@ -546,6 +723,29 @@ |
546 | 723 | "on-headers": "1.0.1" |
547 | 724 | } |
548 | 725 | }, |
726 | + "mpath": { | |
727 | + "version": "0.4.1", | |
728 | + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz", | |
729 | + "integrity": "sha512-NNY/MpBkALb9jJmjpBlIi6GRoLveLUM0pJzgbp9vY9F7IQEb/HREC/nxrixechcQwd1NevOhJnWWV8QQQRE+OA==" | |
730 | + }, | |
731 | + "mquery": { | |
732 | + "version": "3.0.0", | |
733 | + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz", | |
734 | + "integrity": "sha512-WL1Lk8v4l8VFSSwN3yCzY9TXw+fKVYKn6f+w86TRzOLSE8k1yTgGaLBPUByJQi8VcLbOdnUneFV/y3Kv874pnQ==", | |
735 | + "requires": { | |
736 | + "bluebird": "3.5.0", | |
737 | + "debug": "2.6.9", | |
738 | + "regexp-clone": "0.0.1", | |
739 | + "sliced": "0.0.5" | |
740 | + }, | |
741 | + "dependencies": { | |
742 | + "sliced": { | |
743 | + "version": "0.0.5", | |
744 | + "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", | |
745 | + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" | |
746 | + } | |
747 | + } | |
748 | + }, | |
549 | 749 | "ms": { |
550 | 750 | "version": "2.0.0", |
551 | 751 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |
... | ... | @@ -784,11 +984,37 @@ |
784 | 984 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", |
785 | 985 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" |
786 | 986 | }, |
987 | + "regexp-clone": { | |
988 | + "version": "0.0.1", | |
989 | + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", | |
990 | + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" | |
991 | + }, | |
787 | 992 | "repeat-string": { |
788 | 993 | "version": "1.6.1", |
789 | 994 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", |
790 | 995 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" |
791 | 996 | }, |
997 | + "require_optional": { | |
998 | + "version": "1.0.1", | |
999 | + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", | |
1000 | + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", | |
1001 | + "requires": { | |
1002 | + "resolve-from": "2.0.0", | |
1003 | + "semver": "5.5.0" | |
1004 | + }, | |
1005 | + "dependencies": { | |
1006 | + "semver": { | |
1007 | + "version": "5.5.0", | |
1008 | + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", | |
1009 | + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" | |
1010 | + } | |
1011 | + } | |
1012 | + }, | |
1013 | + "resolve-from": { | |
1014 | + "version": "2.0.0", | |
1015 | + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", | |
1016 | + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" | |
1017 | + }, | |
792 | 1018 | "right-align": { |
793 | 1019 | "version": "0.1.3", |
794 | 1020 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", |
... | ... | @@ -797,6 +1023,11 @@ |
797 | 1023 | "align-text": "0.1.4" |
798 | 1024 | } |
799 | 1025 | }, |
1026 | + "rx": { | |
1027 | + "version": "2.3.24", | |
1028 | + "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz", | |
1029 | + "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=" | |
1030 | + }, | |
800 | 1031 | "safe-buffer": { |
801 | 1032 | "version": "5.1.1", |
802 | 1033 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", |
... | ... | @@ -862,6 +1093,11 @@ |
862 | 1093 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", |
863 | 1094 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" |
864 | 1095 | }, |
1096 | + "sliced": { | |
1097 | + "version": "1.0.1", | |
1098 | + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", | |
1099 | + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" | |
1100 | + }, | |
865 | 1101 | "source-map": { |
866 | 1102 | "version": "0.4.4", |
867 | 1103 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", |
... | ... | @@ -870,6 +1106,11 @@ |
870 | 1106 | "amdefine": "1.0.1" |
871 | 1107 | } |
872 | 1108 | }, |
1109 | + "spawn-command": { | |
1110 | + "version": "0.0.2-1", | |
1111 | + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", | |
1112 | + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=" | |
1113 | + }, | |
873 | 1114 | "split": { |
874 | 1115 | "version": "1.0.1", |
875 | 1116 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", |
... | ... | @@ -896,6 +1137,22 @@ |
896 | 1137 | "safe-buffer": "5.1.1" |
897 | 1138 | } |
898 | 1139 | }, |
1140 | + "strip-ansi": { | |
1141 | + "version": "0.3.0", | |
1142 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", | |
1143 | + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", | |
1144 | + "requires": { | |
1145 | + "ansi-regex": "0.2.1" | |
1146 | + } | |
1147 | + }, | |
1148 | + "supports-color": { | |
1149 | + "version": "3.2.3", | |
1150 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", | |
1151 | + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", | |
1152 | + "requires": { | |
1153 | + "has-flag": "1.0.0" | |
1154 | + } | |
1155 | + }, | |
899 | 1156 | "tedious": { |
900 | 1157 | "version": "2.3.1", |
901 | 1158 | "resolved": "https://registry.npmjs.org/tedious/-/tedious-2.3.1.tgz", |
... | ... | @@ -994,6 +1251,11 @@ |
994 | 1251 | } |
995 | 1252 | } |
996 | 1253 | }, |
1254 | + "tree-kill": { | |
1255 | + "version": "1.2.0", | |
1256 | + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", | |
1257 | + "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==" | |
1258 | + }, | |
997 | 1259 | "type-is": { |
998 | 1260 | "version": "1.6.16", |
999 | 1261 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", | ... | ... |
package.json
... | ... | @@ -10,17 +10,22 @@ |
10 | 10 | }, |
11 | 11 | "scripts": { |
12 | 12 | "start": "node ./bin/www", |
13 | - "dev": "nodemon ./bin/www" | |
13 | + "server": "nodemon ./bin/www", | |
14 | + "client": "npm run start --prefix client", | |
15 | + "dev": "concurrently \"npm run server\" \"npm run client\"" | |
14 | 16 | }, |
15 | 17 | "author": "José Maria Villac Pinheiro", |
16 | 18 | "dependencies": { |
17 | 19 | "body-parser": "~1.18.2", |
20 | + "concurrently": "^3.5.1", | |
18 | 21 | "cookie-parser": "~1.4.3", |
22 | + "cookie-session": "^2.0.0-beta.3", | |
19 | 23 | "debug": "~2.6.9", |
20 | 24 | "express": "~4.15.5", |
21 | 25 | "jade": "~1.11.0", |
22 | 26 | "jade-bootstrap": "^1.0.14", |
23 | 27 | "leaflet-draw": "^1.0.2", |
28 | + "mongoose": "^5.0.17", | |
24 | 29 | "morgan": "~1.9.0", |
25 | 30 | "mssql": "^4.1.0", |
26 | 31 | "passport": "^0.4.0", | ... | ... |
routes/authRoutes.js
... | ... | @@ -26,4 +26,13 @@ module.exports = router => { |
26 | 26 | res.redirect("/"); |
27 | 27 | } |
28 | 28 | ); |
29 | + | |
30 | + router.get("/api/logout", (req,res)=>{ | |
31 | + req.logout(); | |
32 | + res.send(req.user); | |
33 | + }); | |
34 | + | |
35 | + router.get("/api/current_user", (req, res)=> { | |
36 | + res.send (req.user); | |
37 | + }); | |
29 | 38 | }; | ... | ... |
routes/index.js
1 | 1 | var express = require("express"); |
2 | +const mongoose = require ("mongoose"); | |
2 | 3 | var router = express.Router(); |
3 | -require("../services/passport"); | |
4 | -require("../services/databases"); | |
5 | 4 | const keys = require("../config/keys"); |
5 | +require("../models/User"); | |
6 | +const passport = require("../services/passport"); | |
7 | +require("../services/databases"); | |
8 | + | |
9 | +mongoose.connect(keys.mongoURI); | |
6 | 10 | |
7 | 11 | require("./authRoutes")(router); |
12 | +require("./mapRoutes")(router); | |
8 | 13 | |
9 | 14 | /* GET home page. */ |
10 | 15 | router.get("/", function(req, res, next) { |
11 | 16 | res.render("index", { title: "NEXUS" }); |
12 | 17 | }); |
13 | 18 | |
14 | -// bounding coordinates to view the map | |
15 | -var boundSW = [-23.6506647239914, -46.5848434588656]; // lat, long | |
16 | -var boundNE = [-23.5992830936269, -46.5447524538661]; | |
17 | - | |
18 | -router.get("/map/:nome", function(req, res, next) { | |
19 | - var numeroConsumidor = require("../src/findConsumerNumber"); | |
20 | - var coordenadas = require("../src/findCoordinatesFromConsumer"); | |
21 | - var retorno = numeroConsumidor(req.params.nome, function(numero, nome, err) { | |
22 | - if (err === undefined) { | |
23 | - console.log("Terminou tudo: " + numero + " Nome: " + nome); | |
24 | - var codigoComNome = numero + " - " + nome; | |
25 | - var retorno = coordenadas(numero, function(x, y) { | |
26 | - console.log("Terminou procura coordenadas x: " + x + " y: " + y); | |
27 | - res.render("map", { | |
28 | - codigo: numero, | |
29 | - consumidor: codigoComNome, | |
30 | - fator_zoom: 23, | |
31 | - title: "NEXUS", | |
32 | - lat: y, | |
33 | - lng: x, | |
34 | - bndSW: boundSW, | |
35 | - bndNE: boundNE, | |
36 | - geoserverWMS: keys.geoserverWMS, | |
37 | - waterLayers: keys.waterLayers, | |
38 | - server: keys.server | |
39 | - }); | |
40 | - }); | |
41 | - } | |
42 | - }); | |
43 | -}); | |
44 | - | |
45 | -router.get(keys.server + "/ponto", function(req, res) { | |
46 | - var coord = {}; | |
47 | - console.log("Postou: "); | |
48 | -}); | |
49 | - | |
50 | 19 | module.exports = router; | ... | ... |
... | ... | @@ -0,0 +1,39 @@ |
1 | +const keys = require("../config/keys"); | |
2 | + | |
3 | +module.exports = router => { | |
4 | + // bounding coordinates to view the map | |
5 | + var boundSW = [-23.6506647239914, -46.5848434588656]; // lat, long | |
6 | + var boundNE = [-23.5992830936269, -46.5447524538661]; | |
7 | + | |
8 | + router.get("/map/:nome", function(req, res, next) { | |
9 | + var numeroConsumidor = require("../src/findConsumerNumber"); | |
10 | + var coordenadas = require("../src/findCoordinatesFromConsumer"); | |
11 | + var retorno = numeroConsumidor(req.params.nome, function(numero, nome, err) { | |
12 | + if (err === undefined) { | |
13 | + console.log("Terminou tudo: " + numero + " Nome: " + nome); | |
14 | + var codigoComNome = numero + " - " + nome; | |
15 | + var retorno = coordenadas(numero, function(x, y) { | |
16 | + console.log("Terminou procura coordenadas x: " + x + " y: " + y); | |
17 | + res.render("map", { | |
18 | + codigo: numero, | |
19 | + consumidor: codigoComNome, | |
20 | + fator_zoom: 23, | |
21 | + title: "NEXUS", | |
22 | + lat: y, | |
23 | + lng: x, | |
24 | + bndSW: boundSW, | |
25 | + bndNE: boundNE, | |
26 | + geoserverWMS: keys.geoserverWMS, | |
27 | + waterLayers: keys.waterLayers, | |
28 | + server: keys.server | |
29 | + }); | |
30 | + }); | |
31 | + } | |
32 | + }); | |
33 | + }); | |
34 | + | |
35 | + router.get(keys.server + "/ponto", function(req, res) { | |
36 | + var coord = {}; | |
37 | + console.log("Postou: "); | |
38 | + }); | |
39 | +}; | |
0 | 40 | \ No newline at end of file | ... | ... |
services/passport.js
1 | 1 | const passport = require("passport"); |
2 | 2 | const GoogleStrategy = require("passport-google-oauth20").Strategy; |
3 | -const util = require('util'); | |
3 | +// const util = require("util"); // example: console.log("Profile: " + util.inspect(profile, false, null)); | |
4 | +const mongoose = require("mongoose"); | |
4 | 5 | const keys = require("../config/keys"); |
5 | 6 | |
7 | +const User = mongoose.model("users"); | |
8 | + | |
9 | +passport.serializeUser((user, done) => { | |
10 | + done(null, user.id); | |
11 | +}); | |
12 | + | |
13 | +passport.deserializeUser((id, done) => { | |
14 | + User.findById(id).then(user => { | |
15 | + done(null, user); | |
16 | + }); | |
17 | +}); | |
18 | + | |
6 | 19 | passport.use( |
7 | - new GoogleStrategy( | |
8 | - { | |
9 | - clientID: keys.googleClientID, | |
10 | - clientSecret: keys.googleClientSecret, | |
11 | - callbackURL: "/auth/google/callback" | |
12 | - }, | |
13 | - (accessToken, refreshToken, profile, done) => { // error function | |
14 | - console.log("Ocorreu um erro"); | |
15 | - console.log("Chave de acesso: " + accessToken); | |
16 | - console.log("Refresh token: " + refreshToken); | |
17 | - console.log("Profile: " + util.inspect(profile, false, null)); | |
18 | - } | |
19 | - ) | |
20 | - ); | |
21 | - | |
22 | 20 | \ No newline at end of file |
21 | + new GoogleStrategy( | |
22 | + { | |
23 | + clientID: keys.googleClientID, | |
24 | + clientSecret: keys.googleClientSecret, | |
25 | + callbackURL: "/auth/google/callback" | |
26 | + }, | |
27 | + (accessToken, refreshToken, profile, done) => { | |
28 | + // callback function | |
29 | + User.findOne({ googleId: profile.id }).then(existingUser => { | |
30 | + if (existingUser) { | |
31 | + // we already have a record with the given profile ID | |
32 | + done(null, existingUser); | |
33 | + } else { | |
34 | + // we don't have a record with the given profile ID | |
35 | + new User({ googleId: profile.id }) | |
36 | + .save() | |
37 | + .then(user => done(null, user)); | |
38 | + } | |
39 | + }); | |
40 | + } | |
41 | + ) | |
42 | +); | ... | ... |
views/map.jade
... | ... | @@ -13,7 +13,7 @@ block content |
13 | 13 | script. |
14 | 14 | function relocate_home() |
15 | 15 | { |
16 | - location.href = "#{server}/map/" + nome.value; | |
16 | + location.href = "/map/" + nome.value; | |
17 | 17 | } |
18 | 18 | br |
19 | 19 | #map |
... | ... | @@ -44,8 +44,55 @@ block content |
44 | 44 | var marker = L.marker([#{lat},#{lng}]).addTo(map); |
45 | 45 | marker.bindPopup("<b>#{codigo}</b><br>#{consumidor}").openPopup(); |
46 | 46 | |
47 | + //- var modifiedDraw = L.Control.Draw.extend({ | |
48 | + //- draw: { | |
49 | + //- polygon: false, | |
50 | + //- polyline: false, | |
51 | + //- line: false, | |
52 | + //- circle: false, | |
53 | + //- rectangle: false, | |
54 | + //- circlemarker: false, | |
55 | + //- marker: true, | |
56 | + //- toolbar: { | |
57 | + //- buttons: { | |
58 | + //- marker: 'Cadastra árvore' | |
59 | + //- } | |
60 | + //- } | |
61 | + //- }, | |
62 | + //- edit: { | |
63 | + //- featureGroup: drawnItems | |
64 | + //- } | |
65 | + //- }); | |
66 | + | |
67 | + //- modifiedDraw = L.Control.Draw({ | |
68 | + //- draw: { | |
69 | + //- polygon: false, | |
70 | + //- polyline: false, | |
71 | + //- line: false, | |
72 | + //- circle: false, | |
73 | + //- rectangle: false, | |
74 | + //- circlemarker: false, | |
75 | + //- marker: true | |
76 | + //- }, | |
77 | + //- edit: { | |
78 | + //- featureGroup: drawnItems | |
79 | + //- }, | |
80 | + //- }); | |
81 | + | |
47 | 82 | var drawControl = new L.Control.Draw({ |
48 | 83 | draw: { |
84 | + toolbar: { | |
85 | + buttons: { | |
86 | + marker: 'Draw an awesome polygon' | |
87 | + } | |
88 | + }, | |
89 | + handlers: { | |
90 | + marker: { | |
91 | + tooltip: { | |
92 | + start: "Selecione no mapa para colocar uma árvore." | |
93 | + } | |
94 | + } | |
95 | + }, | |
49 | 96 | polygon: false, |
50 | 97 | polyline: false, |
51 | 98 | line: false, |
... | ... | @@ -56,8 +103,12 @@ block content |
56 | 103 | }, |
57 | 104 | edit: { |
58 | 105 | featureGroup: drawnItems |
59 | - } | |
106 | + }, | |
60 | 107 | }); |
108 | + L.drawLocal = { | |
109 | + | |
110 | + }; | |
111 | + | |
61 | 112 | map.addControl(drawControl); |
62 | 113 | |
63 | 114 | // Truncate value based on number of decimals | ... | ... |