Browse Source

fix(Reports): reports associated with deleted accounts couldn't be indexed

Signed-off-by: Jonathan <theflametrooper@gmail.com>
Jonathan 3 years ago
parent
commit
ba772bac61

+ 18 - 10
backend/logic/actions/reports.js

@@ -75,19 +75,27 @@ export default {
 					async.each(
 						_reports,
 						(report, cb) => {
+							console.log(typeof report.createdBy);
+
 							userModel
 								.findById(report.createdBy)
 								.select({ avatar: -1, name: -1, username: -1 })
-								.exec((err, { avatar, name, username }) => {
-									reports.push({
-										...report._doc,
-										createdBy: {
-											avatar,
-											name,
-											username,
-											_id: report.createdBy
-										}
-									});
+								.exec((err, user) => {
+									if (!user)
+										reports.push({
+											...report._doc,
+											createdBy: { _id: report.createdBy }
+										});
+									else
+										reports.push({
+											...report._doc,
+											createdBy: {
+												avatar: user.avatar,
+												name: user.name,
+												username: user.username,
+												_id: report.createdBy
+											}
+										});
 
 									return cb(err);
 								});

+ 1 - 1
frontend/src/App.vue

@@ -550,7 +550,7 @@ a {
 	a {
 		display: inline-block;
 		cursor: pointer;
-		// color: var(--dark-grey);
+		color: var(--dark-grey);
 		vertical-align: middle;
 
 		&:hover,

+ 5 - 0
frontend/src/components/modals/EditSong/Tabs/Reports.vue

@@ -121,6 +121,7 @@
 						<div class="report-item-info">
 							<div class="report-item-icon">
 								<profile-picture
+									v-if="report.createdBy.avatar"
 									:avatar="report.createdBy.avatar"
 									:name="
 										report.createdBy.name
@@ -134,6 +135,7 @@
 								<p class="report-item-summary-title">
 									Reported by
 									<router-link
+										v-if="report.createdBy.username"
 										:to="{
 											path: `/u/${report.createdBy.username}`
 										}"
@@ -142,6 +144,9 @@
 									>
 										{{ report.createdBy.username }}
 									</router-link>
+									<span v-else>{{
+										report.createdBy._id
+									}}</span>
 								</p>
 								<p class="report-item-summary-description">
 									{{

+ 3 - 0
frontend/src/components/modals/ViewReport.vue

@@ -6,6 +6,7 @@
 					<div class="report-item-info">
 						<div class="report-item-icon">
 							<profile-picture
+								v-if="report.createdBy.avatar"
 								:avatar="report.createdBy.avatar"
 								:name="
 									report.createdBy.name
@@ -19,6 +20,7 @@
 							<p class="report-item-summary-title">
 								Reported by
 								<router-link
+									v-if="report.createdBy.username"
 									:to="{
 										path: `/u/${report.createdBy.username}`
 									}"
@@ -26,6 +28,7 @@
 								>
 									{{ report.createdBy.username }}
 								</router-link>
+								<span v-else>{{ report.createdBy._id }}</span>
 							</p>
 							<p class="report-item-summary-description">
 								{{

+ 5 - 0
frontend/src/pages/Admin/tabs/Reports.vue

@@ -18,6 +18,7 @@
 								<div class="report-item-info">
 									<div class="report-item-icon">
 										<profile-picture
+											v-if="report.createdBy.avatar"
 											:avatar="report.createdBy.avatar"
 											:name="
 												report.createdBy.name
@@ -31,6 +32,7 @@
 										<p class="report-item-summary-title">
 											Reported by
 											<router-link
+												v-if="report.createdBy.username"
 												:to="{
 													path: `/u/${report.createdBy.username}`
 												}"
@@ -38,6 +40,9 @@
 											>
 												{{ report.createdBy.username }}
 											</router-link>
+											<span v-else>{{
+												report.createdBy._id
+											}}</span>
 										</p>
 										<p
 											class="report-item-summary-description"