chore: add new route to get users of services
This commit is contained in:
@@ -116,6 +116,14 @@ export class DanakServicesController {
|
||||
return this.danakServicesService.getDanakServiceByIdWithSubs(paramDto.id, isAdmin, userId);
|
||||
}
|
||||
|
||||
@ApiOperation({ summary: "get service users" })
|
||||
@AuthGuards()
|
||||
@PermissionsDec(PermissionEnum.SERVICES)
|
||||
@Get(":id/users")
|
||||
getServiceUsers(@Param() paramDto: ParamDto) {
|
||||
return this.danakServicesService.getServiceUsers(paramDto.id);
|
||||
}
|
||||
|
||||
@ApiOperation({ summary: "add review to danak service ==> user route" })
|
||||
@AuthGuards()
|
||||
@Post(":id/reviews")
|
||||
|
||||
@@ -244,6 +244,31 @@ export class DanakServicesService {
|
||||
}
|
||||
/******************************************** */
|
||||
|
||||
async getServiceUsers(serviceId: string) {
|
||||
await this.findServiceById(serviceId);
|
||||
|
||||
const users = await this.danakServicesRepository
|
||||
.createQueryBuilder("service")
|
||||
.innerJoin("service.subscriptionPlans", "subscriptionPlans")
|
||||
.innerJoin("subscriptionPlans.userSubscriptions", "userSubscriptions")
|
||||
.innerJoin("user", "user", "userSubscriptions.userId = user.id")
|
||||
.select([
|
||||
"DISTINCT user.id AS id",
|
||||
"user.firstName AS firstName",
|
||||
"user.lastName AS lastName",
|
||||
"user.email AS email",
|
||||
"user.profilePic AS profilePic",
|
||||
])
|
||||
.where("service.id = :serviceId", { serviceId })
|
||||
.andWhere("userSubscriptions.status = :status", { status: SubscriptionStatus.ACTIVE })
|
||||
.andWhere("userSubscriptions.endDate > NOW()")
|
||||
.getRawMany();
|
||||
|
||||
return { users };
|
||||
}
|
||||
|
||||
/******************************************** */
|
||||
|
||||
async getDanakServiceReviews(queryDto: DanakServiceReviewQueryDto) {
|
||||
const { limit, skip } = PaginationUtils(queryDto);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user