From bb0343ab30fc52d10221645542fb8a6daebc942b Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Tue, 22 Oct 2019 15:08:07 -0400 Subject: [PATCH 01/10] Remove redundant profile --- twistter-frontend/src/components/profile/StaticProfile.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 twistter-frontend/src/components/profile/StaticProfile.js diff --git a/twistter-frontend/src/components/profile/StaticProfile.js b/twistter-frontend/src/components/profile/StaticProfile.js deleted file mode 100644 index e69de29..0000000 From dede04aa8ec9e2ec1f6cc0c65e3ac2e607be5a97 Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Tue, 22 Oct 2019 15:08:38 -0400 Subject: [PATCH 02/10] added dependency --- package-lock.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package-lock.json b/package-lock.json index c7bbe95..61107d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -204,6 +204,11 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, + "jwt-decode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz", + "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", From e984afff74a20e78076ccb0f799ac1fc2bebfa20 Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Tue, 22 Oct 2019 18:26:21 -0400 Subject: [PATCH 03/10] modified profile.js --- twistter-frontend/src/components/profile/Profile.js | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 twistter-frontend/src/components/profile/Profile.js diff --git a/twistter-frontend/src/components/profile/Profile.js b/twistter-frontend/src/components/profile/Profile.js new file mode 100644 index 0000000..f87513f --- /dev/null +++ b/twistter-frontend/src/components/profile/Profile.js @@ -0,0 +1,11 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { connect } from 'react-redux'; +import { mergeClasses } from '@material-ui/styles'; + +class Profile extends Component { + render(); + + return +} \ No newline at end of file From b17fb1f3f0da536f8d58b46897f6de09f216b46e Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Wed, 23 Oct 2019 23:16:43 -0400 Subject: [PATCH 04/10] Update fbAuth so the user data from firebase is stored in req.userData --- functions/util/fbAuth.js | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/util/fbAuth.js b/functions/util/fbAuth.js index 3b59d14..35253e7 100644 --- a/functions/util/fbAuth.js +++ b/functions/util/fbAuth.js @@ -32,6 +32,7 @@ module.exports = (req, res, next) => { .then((data) => { req.user.handle = data.docs[0].data().handle; // Save username req.user.imageUrl = data.docs[0].data().imageUrl; + req.userData = data.docs[0].data(); // Stores all user data from the database return next(); }) .catch((err) => { From cdbf0fcdc68a2d07e5f0e905e5a9a02ea48e8d04 Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Thu, 24 Oct 2019 16:24:33 -0400 Subject: [PATCH 05/10] renew adminsdk --- ...ter-e4649-firebase-adminsdk-pgjve-1e57494429.json | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 twistter-e4649-firebase-adminsdk-pgjve-1e57494429.json diff --git a/twistter-e4649-firebase-adminsdk-pgjve-1e57494429.json b/twistter-e4649-firebase-adminsdk-pgjve-1e57494429.json deleted file mode 100644 index d24aa3c..0000000 --- a/twistter-e4649-firebase-adminsdk-pgjve-1e57494429.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "service_account", - "project_id": "twistter-e4649", - "private_key_id": "1e57494429e4fd7d17f6fc28524e14b8e5227596", - "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyRdMZwXrpf3HB\nsVrGZVoPt+S+ahkT4SCCEWV/Q4O4hVyW277Rs0p7k5ZkZfkhcVVBUqKGMgW/Esvz\npx0VIgpg3gg308kMRmC3MGzYbodjynVyDHatyAZhhUi9cg0N2K9+vSsW5eSmWROe\nfVvB8hvr6m5xGVdJFA7DV4/0vm2cfy+Q/FlFb6vFmQTZtPZzGFf5BKoNMe7pMxey\n4zspAIZgRmxWDbAqqzX0PYk/WbXFgH/wn2X25S+ArHhoay2Hms65/NbWCV6mpFUJ\nYqzrlCn/WcwXGAm7tjmu00yD+bARabImh8R7+PSBaHMQ+SGdri2snIXWsvB/xi9/\nSNFqzHynAgMBAAECggEAVty/zapg1bnTt0FPziBfIA6FpaPzoSSN3uJUFozSdwuA\nAD+E/A9EiO7yFew71egvVrtJVmK0OxQRDSDNglkKPoWg8na+XL1D7a5qMpC0ZlKl\nJBNfljBCr6yuMySJqMf+Rp4siyUr4kO/0/cXyOnLYglhk7j5tzFPOi4FhgZtSRU9\nYckk5wwcBObUFE0Rmqf0gPcI9WuFUkusIjz3rjuEju1/U6E/VV5gHmMuQy3f9LHB\nnsiLAobx9+TGgs12CvkjWYpW5raUCCn5z/EYNPZSt7rg9CSWqXW009HCfTqi6i7o\nNpZ7qpp5DVQdHNFJunSGvI+k44+i8OE7HEY4xXt+OQKBgQDZ/E1QwJQoHuzPkrGW\nAc0a+NQeG8NwaXwsezlvYXMTbL27SxKXC3dzPT1WgNUKpaKj3wLJPar4NgPPSPi3\nqgmcvMqgwm4B+HPbXc1oxBS7/jD3pWJVyPO9Re17Uc0RYV/DORQhWe1Yq7TyMHvl\nbD/KqIvOxswigVxK4JMIxp4s7wKBgQDRXJfb4BHdR7CGfuTVQ19gH5uLgrK9ezBk\nQOLK+u9yBpoKyYSnD3OH/i0wG5bm3rUegzvwHGKKhDfiLbajMIt04n2DuVUm57HQ\n+Jca29V8XMWfhTbu3kDl+OOFmLvPCwg8C9edNTJWUVYu3EbwsyzCQY5TDroWGQdF\n6cQIkAIbyQKBgQCUtWd1UHuCR16cWOHniQEIhnoGtEAHHx9EJShQkLV1qfhhnlxn\nSL5LkpqWubsc0VR74LbA3N4XCJpevdRXT5vRHoZJV3q+w2UeYQaxkxrmCQoU1/GW\nvklxdRQGzg5M7hXrU7Qk8HlXxYPiuSq8n7WBJqyB+uLmI0P4HO6RzRW5ZwKBgBkr\nf5pQkvU+dCuHP+2fvuyogCPCn8iF8ehroJh0mKrlvklDtu36vpH/7eDVwEubRL0Z\nW/BfCT3L7YgEpOtzn6B6xko60tDtlAQijtAM09qysJOgCV2oXLcJOBlMpm+azO+j\nINXmmlmkR680jlbLw7rK9NhpcdfMRIKUOxwobAh5AoGBAJMN6n7Hy8nJRJZ18iHY\n3hEkVbKrLLMMHFDQj5BZQCeAp1v0Fj30RYJWS4hTzR9ht0MtdmPub460lh9hhqCM\nl3UnCJoz00ApF3Z2FRN/l0KpCFD9Gw2Hjyc3u9sEUpqd8G3cg3IZE6eZ6CZWljFT\nHcuQ2cTFdB8bq8oLUxXeY3Yv\n-----END PRIVATE KEY-----\n", - "client_email": "firebase-adminsdk-pgjve@twistter-e4649.iam.gserviceaccount.com", - "client_id": "102241295911303209723", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-pgjve%40twistter-e4649.iam.gserviceaccount.com" -} From 714e6a4e07663aac509abf63ee31e3a215df9157 Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Thu, 24 Oct 2019 16:24:56 -0400 Subject: [PATCH 06/10] new adminsdk --- ...ter-e4649-firebase-adminsdk-pgjve-382fc005e1.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 twistter-e4649-firebase-adminsdk-pgjve-382fc005e1.json diff --git a/twistter-e4649-firebase-adminsdk-pgjve-382fc005e1.json b/twistter-e4649-firebase-adminsdk-pgjve-382fc005e1.json new file mode 100644 index 0000000..3d3ce5d --- /dev/null +++ b/twistter-e4649-firebase-adminsdk-pgjve-382fc005e1.json @@ -0,0 +1,12 @@ +{ + "type": "service_account", + "project_id": "twistter-e4649", + "private_key_id": "382fc005e17340a21dd39079feca75371330644d", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDL1bwTpEluR6dJ\nVfS/K1d76j2I3Wrn4qSbrTYm4/cAPBPlsBRO0bwrkhr+g0I6rwW/fFz8udjNAFB1\nfDfz769buR6go5us71I5LxMNviIhzFr59ZsEkcnUCgW8G7koicLEjWdstI4lJxZT\nRRolH+SFpPwsQAY399zjdBiCC8STbavVVhe+ChEDl/S2K72W7A7nWSMbLsyGsz2o\nQ9uIG3onwFNE7WRIeObWCxSBKlydMmTJ+p/CsTdFY4fUHb97QsMEmzRJox10kmyt\nP9l5wfJ2wUYvRXRJKq7Mwx1UnLduXP2oe/XvR5fzJLJ780HO6BNBf5IKcTHXHVBA\ne6ZtiL5dAgMBAAECggEAFvfN1NttjXL0KKak3hMA1+z8Y2WqXC1aUFMOMlz8Qhct\nmXNjy8CFAYEvGtVTgHqkR9Vi7PShYfLSc3U8diI155H5H4S6pUaPmfNHTwRzosyn\ncQRPJA6sEqvRGvHMxVfwjbvultMpiTTZpnxiMSNiLqT5PUs26CuSb5bErt1V7dP5\nn/lhY+4rzfXSrw38ZsO/gEvLZ/7iRA+JZgqE3Qs2cD5idxqqOcOLLiW741JpXTmd\n5ug/urJgSyvz+cNo3yHnajEtAxiSfkpU4sUHZ/WWqaRGWxpt3XWILtR9Q/4afPeM\n/T82YvddoW5pUwDpgvZxdVYjopuoxvnS298L0AGySQKBgQDqDD7Yh6SbOR3w4ZN9\nRO7q5KiJbyZmVdZ3lLZddsL/vto9JkUtnLDOMpYnb2TezGfN6ErzAkRQCSUsWK4m\nERbSK6oyUvevhlt/gHGP34uc/OCxGk2D7WCAS3s54ofDt2369tzIpGjsnkYM+h3b\nuZ5lFoWHG1YM3JtgcIIU6UygTwKBgQDe9ArV08wPDuXf4rcldmImQDB7xhGcg9xU\njAKEn5FZW1mvmBy3Sq1qpZj0baZz6eEDn6FBLwH1Ke5gdfrd8WnESUNnFnBBqpA1\nospIgUmKZ1sjyly9CHMQ11Kbzt7+kA9GYZrMbaMjS8M18qFEBZ7CoPLv5DLyabJW\nOkPzTwb/kwKBgQDR3fUkmEzj202bx8pHE97gxfTSd9aJAQN06uaz3GByjyKGnqB9\ni/mGjBnUdrCOj9+s5VT/ntK+qdSpdUODYuOBxiGxSnBK9kFpjTVHe35nYOHiLOHB\nIMPdhtGSUCzJNNvrpBzJ1ZM4SZwq2sSXWFRN9On7Amog0liJG5mpQqGxRQKBgHmP\nzFycF3XaZKH2xm8ppgg/FXBXJYEWMEr07+aJ7kEvWq4wHPAfSoCMe+JB6vDmg2Zr\nYgvdao7W5v83NKpQl5+LZrHNfTWAnxJviSWRQJyzD/Fqw7fZ5Is5K/SCDfn0aC+y\nxilSWhHDnFNM0Hr7KX3rLap43QJpePAk4qnF3AX7AoGBAOe5C1VMKoTapnxvo/FI\nBCvXw05SSEExfXVR0ryoqUxgu1asCkYyJSoWxOZQ+33npQ1/zV1mCXn/lNZcyveW\nZ5/cUw71grW8KBYFrW7LeQIzjZb7xPI3Z4EV0uYd2b69GkQk1buHj/gsswRhGEvx\nJM1DN1SCenbGcVLprM0vVelp\n-----END PRIVATE KEY-----\n", + "client_email": "firebase-adminsdk-pgjve@twistter-e4649.iam.gserviceaccount.com", + "client_id": "102241295911303209723", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-pgjve%40twistter-e4649.iam.gserviceaccount.com" +} From e524bc2811f77ac5c34e6f99730706cad13510b2 Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Thu, 24 Oct 2019 16:25:19 -0400 Subject: [PATCH 07/10] pass in fbAuth to getUserDetails --- functions/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/index.js b/functions/index.js index 5c728bc..119fa38 100644 --- a/functions/index.js +++ b/functions/index.js @@ -27,7 +27,7 @@ app.post("/signup", signup); // and password app.post("/login", login); -app.get("/getUser/:handle", getUserDetails); +app.get("/getUser/:handle", fbAuth, getUserDetails); // Returns all profile data of the currently logged in user app.get("/getProfileInfo", fbAuth, getProfileInfo); From bdad36957ca9586c837e08a9aad96e9f6dd56f18 Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Thu, 24 Oct 2019 16:25:29 -0400 Subject: [PATCH 08/10] package lock --- package-lock.json | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/package-lock.json b/package-lock.json index 61107d8..c65b0ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,15 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -164,6 +173,24 @@ "unpipe": "~1.0.0" } }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "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" + } + } + } + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -204,6 +231,11 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + }, "jwt-decode": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz", From 570866ff406ac864146eb03ecd4deb4c382efccd Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Thu, 24 Oct 2019 16:27:22 -0400 Subject: [PATCH 09/10] getUserDetail returns only user handle --- functions/handlers/users.js | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/functions/handlers/users.js b/functions/handlers/users.js index 00d8f1c..09ffac0 100644 --- a/functions/handlers/users.js +++ b/functions/handlers/users.js @@ -178,37 +178,18 @@ exports.updateProfileInfo = (req, res) => { exports.getUserDetails = (req, res) => { let userData = {}; - db.doc(`/users/${req.params.handle}`) + db.doc(`/getUser/${req.params.handle}`) .get() .then((doc) => { if (doc.exists) { - userData.user = doc.data(); - return db - .collection("post") - .where("userHandle", "==", req.params.handle) - .orderBy("createdAt", "desc") - .get(); + userData.credentials = doc.data(); + return res.status(200).json({userData}); } else { - return res.status(404).json({ + return res.status(400).json({ error: "User not found" }); } }) - .then((data) => { - userData.posts = []; - data.forEach((doc) => { - userData.posts.push({ - body: doc.data().body, - createAt: doc.data().createAt, - userHandle: doc.data().userHandle, - userImage: doc.data().userImage, - likeCount: doc.data().likeCount, - commentCount: doc.data().commentCount, - postId: doc.id - }); - }); - return res.json(userData); - }) .catch((err) => { console.error(err); return res.status(500).json({ error: err.code }); @@ -231,3 +212,5 @@ exports.getAuthenticatedUser = (req, res) => { return res.status(500).json({ error: err.code }); }); }; + + From ac28b3e19e25a7e2df69825c0cb07bf6eb46df4e Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Thu, 24 Oct 2019 17:06:44 -0400 Subject: [PATCH 10/10] getUserDetails is now working --- functions/handlers/users.js | 4 ++-- functions/index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/functions/handlers/users.js b/functions/handlers/users.js index 09ffac0..09c3c79 100644 --- a/functions/handlers/users.js +++ b/functions/handlers/users.js @@ -178,11 +178,11 @@ exports.updateProfileInfo = (req, res) => { exports.getUserDetails = (req, res) => { let userData = {}; - db.doc(`/getUser/${req.params.handle}`) + db.doc(`/users/${req.body.handle}`) .get() .then((doc) => { if (doc.exists) { - userData.credentials = doc.data(); + userData = doc.data(); return res.status(200).json({userData}); } else { return res.status(400).json({ diff --git a/functions/index.js b/functions/index.js index 119fa38..a718b52 100644 --- a/functions/index.js +++ b/functions/index.js @@ -27,7 +27,7 @@ app.post("/signup", signup); // and password app.post("/login", login); -app.get("/getUser/:handle", fbAuth, getUserDetails); +app.get("/getUser", fbAuth, getUserDetails); // Returns all profile data of the currently logged in user app.get("/getProfileInfo", fbAuth, getProfileInfo);