feat: implement rating summary service methods and integrate rating display components into the organization header and pending ratings page

This commit is contained in:
2026-07-22 12:13:50 -03:00
parent 383a5bc6b4
commit da3c3abb52
27 changed files with 1334 additions and 104 deletions
+33 -1
View File
@@ -1,6 +1,18 @@
import { connect } from "mongoose";
import RatingsList from "../../Models/Ratings/Ratings";
import { CreateRatingParams, IRating, PendingRatingItem, PendingRatingsByUserParams } from "../../Models/Ratings/Ratings.Interface";
import {
CountRatingsByUserParams,
CountRatingsByUserResult,
CreateRatingParams,
IRating,
PendingRatingItem,
PendingRatingsByUserParams,
ProfessionalRatingSummaryByUserParams,
RatingTargetSummaryParams,
RatingTargetSummaryResult,
RatingTargetReviewItem,
RatingTargetReviewsParams,
} from "../../Models/Ratings/Ratings.Interface";
export class RatingsService {
public async createRating(data: CreateRatingParams): Promise<IRating> {
@@ -12,4 +24,24 @@ export class RatingsService {
await connect(`${process.env.DATABASE_CONNECTION}`);
return await RatingsList.pendingByUser(data);
}
public async countByUser(data: CountRatingsByUserParams): Promise<CountRatingsByUserResult> {
await connect(`${process.env.DATABASE_CONNECTION}`);
return await RatingsList.countByUser(data);
}
public async professionalSummaryByUser(data: ProfessionalRatingSummaryByUserParams): Promise<RatingTargetSummaryResult> {
await connect(`${process.env.DATABASE_CONNECTION}`);
return await RatingsList.professionalSummaryByUser(data);
}
public async summaryByTarget(data: RatingTargetSummaryParams): Promise<RatingTargetSummaryResult> {
await connect(`${process.env.DATABASE_CONNECTION}`);
return await RatingsList.summaryByTarget(data);
}
public async reviewsByTarget(data: RatingTargetReviewsParams): Promise<RatingTargetReviewItem[]> {
await connect(`${process.env.DATABASE_CONNECTION}`);
return await RatingsList.reviewsByTarget(data);
}
}