@blackcode_sa/metaestetics-api 1.12.69 → 1.12.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +61 -7
- package/dist/index.mjs +61 -7
- package/package.json +1 -1
- package/src/services/reviews/reviews.service.ts +83 -7
package/dist/index.d.mts
CHANGED
|
@@ -7634,6 +7634,18 @@ declare class PatientRequirementsService extends BaseService {
|
|
|
7634
7634
|
|
|
7635
7635
|
declare class ReviewService extends BaseService {
|
|
7636
7636
|
constructor(db: Firestore, auth: Auth, app: FirebaseApp);
|
|
7637
|
+
/**
|
|
7638
|
+
* Helper function to convert Firestore Timestamps to Date objects
|
|
7639
|
+
* @param timestamp The timestamp to convert
|
|
7640
|
+
* @returns A JavaScript Date object or null
|
|
7641
|
+
*/
|
|
7642
|
+
private convertTimestamp;
|
|
7643
|
+
/**
|
|
7644
|
+
* Converts a Firestore document to a Review object with proper date handling
|
|
7645
|
+
* @param docData The raw Firestore document data
|
|
7646
|
+
* @returns A Review object with properly converted dates
|
|
7647
|
+
*/
|
|
7648
|
+
private convertDocToReview;
|
|
7637
7649
|
/**
|
|
7638
7650
|
* Creates a new review
|
|
7639
7651
|
* @param data - The review data to create
|
package/dist/index.d.ts
CHANGED
|
@@ -7634,6 +7634,18 @@ declare class PatientRequirementsService extends BaseService {
|
|
|
7634
7634
|
|
|
7635
7635
|
declare class ReviewService extends BaseService {
|
|
7636
7636
|
constructor(db: Firestore, auth: Auth, app: FirebaseApp);
|
|
7637
|
+
/**
|
|
7638
|
+
* Helper function to convert Firestore Timestamps to Date objects
|
|
7639
|
+
* @param timestamp The timestamp to convert
|
|
7640
|
+
* @returns A JavaScript Date object or null
|
|
7641
|
+
*/
|
|
7642
|
+
private convertTimestamp;
|
|
7643
|
+
/**
|
|
7644
|
+
* Converts a Firestore document to a Review object with proper date handling
|
|
7645
|
+
* @param docData The raw Firestore document data
|
|
7646
|
+
* @returns A Review object with properly converted dates
|
|
7647
|
+
*/
|
|
7648
|
+
private convertDocToReview;
|
|
7637
7649
|
/**
|
|
7638
7650
|
* Creates a new review
|
|
7639
7651
|
* @param data - The review data to create
|
package/dist/index.js
CHANGED
|
@@ -18088,6 +18088,60 @@ var ReviewService = class extends BaseService {
|
|
|
18088
18088
|
constructor(db, auth, app) {
|
|
18089
18089
|
super(db, auth, app);
|
|
18090
18090
|
}
|
|
18091
|
+
/**
|
|
18092
|
+
* Helper function to convert Firestore Timestamps to Date objects
|
|
18093
|
+
* @param timestamp The timestamp to convert
|
|
18094
|
+
* @returns A JavaScript Date object or null
|
|
18095
|
+
*/
|
|
18096
|
+
convertTimestamp(timestamp) {
|
|
18097
|
+
if (!timestamp) return /* @__PURE__ */ new Date();
|
|
18098
|
+
if (timestamp && timestamp.__isTimestamp === true && typeof timestamp.seconds === "number") {
|
|
18099
|
+
return new Date(timestamp.seconds * 1e3 + (timestamp.nanoseconds || 0) / 1e6);
|
|
18100
|
+
}
|
|
18101
|
+
if (timestamp && timestamp.toDate && typeof timestamp.toDate === "function") {
|
|
18102
|
+
return timestamp.toDate();
|
|
18103
|
+
}
|
|
18104
|
+
if (timestamp instanceof Date) {
|
|
18105
|
+
return timestamp;
|
|
18106
|
+
}
|
|
18107
|
+
if (typeof timestamp === "string" || typeof timestamp === "number") {
|
|
18108
|
+
const date = new Date(timestamp);
|
|
18109
|
+
if (!isNaN(date.getTime())) {
|
|
18110
|
+
return date;
|
|
18111
|
+
}
|
|
18112
|
+
}
|
|
18113
|
+
return /* @__PURE__ */ new Date();
|
|
18114
|
+
}
|
|
18115
|
+
/**
|
|
18116
|
+
* Converts a Firestore document to a Review object with proper date handling
|
|
18117
|
+
* @param docData The raw Firestore document data
|
|
18118
|
+
* @returns A Review object with properly converted dates
|
|
18119
|
+
*/
|
|
18120
|
+
convertDocToReview(docData) {
|
|
18121
|
+
const review = docData;
|
|
18122
|
+
review.createdAt = this.convertTimestamp(docData.createdAt);
|
|
18123
|
+
review.updatedAt = this.convertTimestamp(docData.updatedAt);
|
|
18124
|
+
if (review.clinicReview) {
|
|
18125
|
+
review.clinicReview.createdAt = this.convertTimestamp(review.clinicReview.createdAt);
|
|
18126
|
+
review.clinicReview.updatedAt = this.convertTimestamp(review.clinicReview.updatedAt);
|
|
18127
|
+
}
|
|
18128
|
+
if (review.practitionerReview) {
|
|
18129
|
+
review.practitionerReview.createdAt = this.convertTimestamp(review.practitionerReview.createdAt);
|
|
18130
|
+
review.practitionerReview.updatedAt = this.convertTimestamp(review.practitionerReview.updatedAt);
|
|
18131
|
+
}
|
|
18132
|
+
if (review.procedureReview) {
|
|
18133
|
+
review.procedureReview.createdAt = this.convertTimestamp(review.procedureReview.createdAt);
|
|
18134
|
+
review.procedureReview.updatedAt = this.convertTimestamp(review.procedureReview.updatedAt);
|
|
18135
|
+
}
|
|
18136
|
+
if (review.extendedProcedureReviews && Array.isArray(review.extendedProcedureReviews)) {
|
|
18137
|
+
review.extendedProcedureReviews = review.extendedProcedureReviews.map((extReview) => ({
|
|
18138
|
+
...extReview,
|
|
18139
|
+
createdAt: this.convertTimestamp(extReview.createdAt),
|
|
18140
|
+
updatedAt: this.convertTimestamp(extReview.updatedAt)
|
|
18141
|
+
}));
|
|
18142
|
+
}
|
|
18143
|
+
return review;
|
|
18144
|
+
}
|
|
18091
18145
|
/**
|
|
18092
18146
|
* Creates a new review
|
|
18093
18147
|
* @param data - The review data to create
|
|
@@ -18231,7 +18285,7 @@ var ReviewService = class extends BaseService {
|
|
|
18231
18285
|
console.log("\u274C ReviewService.getReview - Review not found:", reviewId);
|
|
18232
18286
|
return null;
|
|
18233
18287
|
}
|
|
18234
|
-
const review = { ...docSnap.data(), id: reviewId };
|
|
18288
|
+
const review = { ...this.convertDocToReview(docSnap.data()), id: reviewId };
|
|
18235
18289
|
try {
|
|
18236
18290
|
const appointmentDoc = await (0, import_firestore56.getDoc)(
|
|
18237
18291
|
(0, import_firestore56.doc)(this.db, APPOINTMENTS_COLLECTION, review.appointmentId)
|
|
@@ -18296,7 +18350,7 @@ var ReviewService = class extends BaseService {
|
|
|
18296
18350
|
async getReviewsByPatient(patientId) {
|
|
18297
18351
|
const q = (0, import_firestore56.query)((0, import_firestore56.collection)(this.db, REVIEWS_COLLECTION), (0, import_firestore56.where)("patientId", "==", patientId));
|
|
18298
18352
|
const snapshot = await (0, import_firestore56.getDocs)(q);
|
|
18299
|
-
const reviews = snapshot.docs.map((doc45) => doc45.data());
|
|
18353
|
+
const reviews = snapshot.docs.map((doc45) => this.convertDocToReview(doc45.data()));
|
|
18300
18354
|
const enhancedReviews = await Promise.all(
|
|
18301
18355
|
reviews.map(async (review) => {
|
|
18302
18356
|
try {
|
|
@@ -18351,8 +18405,8 @@ var ReviewService = class extends BaseService {
|
|
|
18351
18405
|
);
|
|
18352
18406
|
const snapshot = await (0, import_firestore56.getDocs)(q);
|
|
18353
18407
|
const reviews = snapshot.docs.map((doc45) => {
|
|
18354
|
-
const
|
|
18355
|
-
return { ...
|
|
18408
|
+
const review = this.convertDocToReview(doc45.data());
|
|
18409
|
+
return { ...review, id: doc45.id };
|
|
18356
18410
|
});
|
|
18357
18411
|
console.log("\u{1F50D} ReviewService.getReviewsByClinic - Found reviews before enhancement:", {
|
|
18358
18412
|
clinicId,
|
|
@@ -18427,8 +18481,8 @@ var ReviewService = class extends BaseService {
|
|
|
18427
18481
|
);
|
|
18428
18482
|
const snapshot = await (0, import_firestore56.getDocs)(q);
|
|
18429
18483
|
const reviews = snapshot.docs.map((doc45) => {
|
|
18430
|
-
const
|
|
18431
|
-
return { ...
|
|
18484
|
+
const review = this.convertDocToReview(doc45.data());
|
|
18485
|
+
return { ...review, id: doc45.id };
|
|
18432
18486
|
});
|
|
18433
18487
|
console.log("\u{1F50D} ReviewService.getReviewsByPractitioner - Found reviews before enhancement:", {
|
|
18434
18488
|
practitionerId,
|
|
@@ -18574,7 +18628,7 @@ var ReviewService = class extends BaseService {
|
|
|
18574
18628
|
if (snapshot.empty) {
|
|
18575
18629
|
return null;
|
|
18576
18630
|
}
|
|
18577
|
-
return snapshot.docs[0].data();
|
|
18631
|
+
return this.convertDocToReview(snapshot.docs[0].data());
|
|
18578
18632
|
}
|
|
18579
18633
|
/**
|
|
18580
18634
|
* Deletes a review
|
package/dist/index.mjs
CHANGED
|
@@ -18346,6 +18346,60 @@ var ReviewService = class extends BaseService {
|
|
|
18346
18346
|
constructor(db, auth, app) {
|
|
18347
18347
|
super(db, auth, app);
|
|
18348
18348
|
}
|
|
18349
|
+
/**
|
|
18350
|
+
* Helper function to convert Firestore Timestamps to Date objects
|
|
18351
|
+
* @param timestamp The timestamp to convert
|
|
18352
|
+
* @returns A JavaScript Date object or null
|
|
18353
|
+
*/
|
|
18354
|
+
convertTimestamp(timestamp) {
|
|
18355
|
+
if (!timestamp) return /* @__PURE__ */ new Date();
|
|
18356
|
+
if (timestamp && timestamp.__isTimestamp === true && typeof timestamp.seconds === "number") {
|
|
18357
|
+
return new Date(timestamp.seconds * 1e3 + (timestamp.nanoseconds || 0) / 1e6);
|
|
18358
|
+
}
|
|
18359
|
+
if (timestamp && timestamp.toDate && typeof timestamp.toDate === "function") {
|
|
18360
|
+
return timestamp.toDate();
|
|
18361
|
+
}
|
|
18362
|
+
if (timestamp instanceof Date) {
|
|
18363
|
+
return timestamp;
|
|
18364
|
+
}
|
|
18365
|
+
if (typeof timestamp === "string" || typeof timestamp === "number") {
|
|
18366
|
+
const date = new Date(timestamp);
|
|
18367
|
+
if (!isNaN(date.getTime())) {
|
|
18368
|
+
return date;
|
|
18369
|
+
}
|
|
18370
|
+
}
|
|
18371
|
+
return /* @__PURE__ */ new Date();
|
|
18372
|
+
}
|
|
18373
|
+
/**
|
|
18374
|
+
* Converts a Firestore document to a Review object with proper date handling
|
|
18375
|
+
* @param docData The raw Firestore document data
|
|
18376
|
+
* @returns A Review object with properly converted dates
|
|
18377
|
+
*/
|
|
18378
|
+
convertDocToReview(docData) {
|
|
18379
|
+
const review = docData;
|
|
18380
|
+
review.createdAt = this.convertTimestamp(docData.createdAt);
|
|
18381
|
+
review.updatedAt = this.convertTimestamp(docData.updatedAt);
|
|
18382
|
+
if (review.clinicReview) {
|
|
18383
|
+
review.clinicReview.createdAt = this.convertTimestamp(review.clinicReview.createdAt);
|
|
18384
|
+
review.clinicReview.updatedAt = this.convertTimestamp(review.clinicReview.updatedAt);
|
|
18385
|
+
}
|
|
18386
|
+
if (review.practitionerReview) {
|
|
18387
|
+
review.practitionerReview.createdAt = this.convertTimestamp(review.practitionerReview.createdAt);
|
|
18388
|
+
review.practitionerReview.updatedAt = this.convertTimestamp(review.practitionerReview.updatedAt);
|
|
18389
|
+
}
|
|
18390
|
+
if (review.procedureReview) {
|
|
18391
|
+
review.procedureReview.createdAt = this.convertTimestamp(review.procedureReview.createdAt);
|
|
18392
|
+
review.procedureReview.updatedAt = this.convertTimestamp(review.procedureReview.updatedAt);
|
|
18393
|
+
}
|
|
18394
|
+
if (review.extendedProcedureReviews && Array.isArray(review.extendedProcedureReviews)) {
|
|
18395
|
+
review.extendedProcedureReviews = review.extendedProcedureReviews.map((extReview) => ({
|
|
18396
|
+
...extReview,
|
|
18397
|
+
createdAt: this.convertTimestamp(extReview.createdAt),
|
|
18398
|
+
updatedAt: this.convertTimestamp(extReview.updatedAt)
|
|
18399
|
+
}));
|
|
18400
|
+
}
|
|
18401
|
+
return review;
|
|
18402
|
+
}
|
|
18349
18403
|
/**
|
|
18350
18404
|
* Creates a new review
|
|
18351
18405
|
* @param data - The review data to create
|
|
@@ -18489,7 +18543,7 @@ var ReviewService = class extends BaseService {
|
|
|
18489
18543
|
console.log("\u274C ReviewService.getReview - Review not found:", reviewId);
|
|
18490
18544
|
return null;
|
|
18491
18545
|
}
|
|
18492
|
-
const review = { ...docSnap.data(), id: reviewId };
|
|
18546
|
+
const review = { ...this.convertDocToReview(docSnap.data()), id: reviewId };
|
|
18493
18547
|
try {
|
|
18494
18548
|
const appointmentDoc = await getDoc39(
|
|
18495
18549
|
doc38(this.db, APPOINTMENTS_COLLECTION, review.appointmentId)
|
|
@@ -18554,7 +18608,7 @@ var ReviewService = class extends BaseService {
|
|
|
18554
18608
|
async getReviewsByPatient(patientId) {
|
|
18555
18609
|
const q = query32(collection32(this.db, REVIEWS_COLLECTION), where32("patientId", "==", patientId));
|
|
18556
18610
|
const snapshot = await getDocs32(q);
|
|
18557
|
-
const reviews = snapshot.docs.map((doc45) => doc45.data());
|
|
18611
|
+
const reviews = snapshot.docs.map((doc45) => this.convertDocToReview(doc45.data()));
|
|
18558
18612
|
const enhancedReviews = await Promise.all(
|
|
18559
18613
|
reviews.map(async (review) => {
|
|
18560
18614
|
try {
|
|
@@ -18609,8 +18663,8 @@ var ReviewService = class extends BaseService {
|
|
|
18609
18663
|
);
|
|
18610
18664
|
const snapshot = await getDocs32(q);
|
|
18611
18665
|
const reviews = snapshot.docs.map((doc45) => {
|
|
18612
|
-
const
|
|
18613
|
-
return { ...
|
|
18666
|
+
const review = this.convertDocToReview(doc45.data());
|
|
18667
|
+
return { ...review, id: doc45.id };
|
|
18614
18668
|
});
|
|
18615
18669
|
console.log("\u{1F50D} ReviewService.getReviewsByClinic - Found reviews before enhancement:", {
|
|
18616
18670
|
clinicId,
|
|
@@ -18685,8 +18739,8 @@ var ReviewService = class extends BaseService {
|
|
|
18685
18739
|
);
|
|
18686
18740
|
const snapshot = await getDocs32(q);
|
|
18687
18741
|
const reviews = snapshot.docs.map((doc45) => {
|
|
18688
|
-
const
|
|
18689
|
-
return { ...
|
|
18742
|
+
const review = this.convertDocToReview(doc45.data());
|
|
18743
|
+
return { ...review, id: doc45.id };
|
|
18690
18744
|
});
|
|
18691
18745
|
console.log("\u{1F50D} ReviewService.getReviewsByPractitioner - Found reviews before enhancement:", {
|
|
18692
18746
|
practitionerId,
|
|
@@ -18832,7 +18886,7 @@ var ReviewService = class extends BaseService {
|
|
|
18832
18886
|
if (snapshot.empty) {
|
|
18833
18887
|
return null;
|
|
18834
18888
|
}
|
|
18835
|
-
return snapshot.docs[0].data();
|
|
18889
|
+
return this.convertDocToReview(snapshot.docs[0].data());
|
|
18836
18890
|
}
|
|
18837
18891
|
/**
|
|
18838
18892
|
* Deletes a review
|
package/package.json
CHANGED
|
@@ -29,6 +29,82 @@ export class ReviewService extends BaseService {
|
|
|
29
29
|
super(db, auth, app);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Helper function to convert Firestore Timestamps to Date objects
|
|
34
|
+
* @param timestamp The timestamp to convert
|
|
35
|
+
* @returns A JavaScript Date object or null
|
|
36
|
+
*/
|
|
37
|
+
private convertTimestamp(timestamp: any): Date {
|
|
38
|
+
if (!timestamp) return new Date();
|
|
39
|
+
|
|
40
|
+
// Firebase Timestamp object with __isTimestamp
|
|
41
|
+
if (timestamp && timestamp.__isTimestamp === true && typeof timestamp.seconds === 'number') {
|
|
42
|
+
return new Date(timestamp.seconds * 1000 + (timestamp.nanoseconds || 0) / 1000000);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Firebase Firestore Timestamp with toDate method
|
|
46
|
+
if (timestamp && timestamp.toDate && typeof timestamp.toDate === 'function') {
|
|
47
|
+
return timestamp.toDate();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Already a Date object
|
|
51
|
+
if (timestamp instanceof Date) {
|
|
52
|
+
return timestamp;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// String or number
|
|
56
|
+
if (typeof timestamp === 'string' || typeof timestamp === 'number') {
|
|
57
|
+
const date = new Date(timestamp);
|
|
58
|
+
if (!isNaN(date.getTime())) {
|
|
59
|
+
return date;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return new Date();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Converts a Firestore document to a Review object with proper date handling
|
|
68
|
+
* @param docData The raw Firestore document data
|
|
69
|
+
* @returns A Review object with properly converted dates
|
|
70
|
+
*/
|
|
71
|
+
private convertDocToReview(docData: any): Review {
|
|
72
|
+
const review = docData as Review;
|
|
73
|
+
|
|
74
|
+
// Convert main review timestamps
|
|
75
|
+
review.createdAt = this.convertTimestamp(docData.createdAt);
|
|
76
|
+
review.updatedAt = this.convertTimestamp(docData.updatedAt);
|
|
77
|
+
|
|
78
|
+
// Convert clinic review timestamps if present
|
|
79
|
+
if (review.clinicReview) {
|
|
80
|
+
review.clinicReview.createdAt = this.convertTimestamp(review.clinicReview.createdAt);
|
|
81
|
+
review.clinicReview.updatedAt = this.convertTimestamp(review.clinicReview.updatedAt);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Convert practitioner review timestamps if present
|
|
85
|
+
if (review.practitionerReview) {
|
|
86
|
+
review.practitionerReview.createdAt = this.convertTimestamp(review.practitionerReview.createdAt);
|
|
87
|
+
review.practitionerReview.updatedAt = this.convertTimestamp(review.practitionerReview.updatedAt);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Convert procedure review timestamps if present
|
|
91
|
+
if (review.procedureReview) {
|
|
92
|
+
review.procedureReview.createdAt = this.convertTimestamp(review.procedureReview.createdAt);
|
|
93
|
+
review.procedureReview.updatedAt = this.convertTimestamp(review.procedureReview.updatedAt);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Convert extended procedure reviews timestamps if present
|
|
97
|
+
if (review.extendedProcedureReviews && Array.isArray(review.extendedProcedureReviews)) {
|
|
98
|
+
review.extendedProcedureReviews = review.extendedProcedureReviews.map(extReview => ({
|
|
99
|
+
...extReview,
|
|
100
|
+
createdAt: this.convertTimestamp(extReview.createdAt),
|
|
101
|
+
updatedAt: this.convertTimestamp(extReview.updatedAt),
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return review;
|
|
106
|
+
}
|
|
107
|
+
|
|
32
108
|
/**
|
|
33
109
|
* Creates a new review
|
|
34
110
|
* @param data - The review data to create
|
|
@@ -206,7 +282,7 @@ export class ReviewService extends BaseService {
|
|
|
206
282
|
return null;
|
|
207
283
|
}
|
|
208
284
|
|
|
209
|
-
const review = { ...docSnap.data(), id: reviewId }
|
|
285
|
+
const review = { ...this.convertDocToReview(docSnap.data()), id: reviewId };
|
|
210
286
|
|
|
211
287
|
try {
|
|
212
288
|
// Fetch the associated appointment to enhance with entity names
|
|
@@ -293,7 +369,7 @@ export class ReviewService extends BaseService {
|
|
|
293
369
|
async getReviewsByPatient(patientId: string): Promise<Review[]> {
|
|
294
370
|
const q = query(collection(this.db, REVIEWS_COLLECTION), where('patientId', '==', patientId));
|
|
295
371
|
const snapshot = await getDocs(q);
|
|
296
|
-
const reviews = snapshot.docs.map(doc => doc.data()
|
|
372
|
+
const reviews = snapshot.docs.map(doc => this.convertDocToReview(doc.data()));
|
|
297
373
|
|
|
298
374
|
// Enhance reviews with entity names from appointments
|
|
299
375
|
const enhancedReviews = await Promise.all(
|
|
@@ -364,8 +440,8 @@ export class ReviewService extends BaseService {
|
|
|
364
440
|
);
|
|
365
441
|
const snapshot = await getDocs(q);
|
|
366
442
|
const reviews = snapshot.docs.map(doc => {
|
|
367
|
-
const
|
|
368
|
-
return { ...
|
|
443
|
+
const review = this.convertDocToReview(doc.data());
|
|
444
|
+
return { ...review, id: doc.id };
|
|
369
445
|
});
|
|
370
446
|
|
|
371
447
|
console.log('🔍 ReviewService.getReviewsByClinic - Found reviews before enhancement:', {
|
|
@@ -459,8 +535,8 @@ export class ReviewService extends BaseService {
|
|
|
459
535
|
);
|
|
460
536
|
const snapshot = await getDocs(q);
|
|
461
537
|
const reviews = snapshot.docs.map(doc => {
|
|
462
|
-
const
|
|
463
|
-
return { ...
|
|
538
|
+
const review = this.convertDocToReview(doc.data());
|
|
539
|
+
return { ...review, id: doc.id };
|
|
464
540
|
});
|
|
465
541
|
|
|
466
542
|
console.log('🔍 ReviewService.getReviewsByPractitioner - Found reviews before enhancement:', {
|
|
@@ -644,7 +720,7 @@ export class ReviewService extends BaseService {
|
|
|
644
720
|
return null;
|
|
645
721
|
}
|
|
646
722
|
|
|
647
|
-
return snapshot.docs[0].data()
|
|
723
|
+
return this.convertDocToReview(snapshot.docs[0].data());
|
|
648
724
|
}
|
|
649
725
|
|
|
650
726
|
/**
|