chore: get customers
This commit is contained in:
@@ -1,10 +1,17 @@
|
||||
import { ApiPropertyOptional } from "@nestjs/swagger";
|
||||
import { Type } from "class-transformer";
|
||||
import { IsOptional, IsString } from "class-validator";
|
||||
|
||||
import { PaginationDto } from "../../../common/DTO/pagination.dto";
|
||||
import { FinancialMessage } from "../../../common/enums/message.enum";
|
||||
|
||||
export class SearchCustomersDto extends PaginationDto {
|
||||
@IsOptional()
|
||||
@Type(() => Number)
|
||||
// @IsBoolean({ message: CategoryMessage.IS_ACTIVE_SHOULD_BE_BOOLEAN })
|
||||
@ApiPropertyOptional({ description: "Category status", example: 1 })
|
||||
isActive?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsString({ message: FinancialMessage.SEARCH_QUERY_MUST_BE_A_STRING })
|
||||
@ApiPropertyOptional({ description: "search query", example: "search query" })
|
||||
|
||||
@@ -329,13 +329,13 @@ export class UsersService {
|
||||
|
||||
const queryBuilder = this.userRepository
|
||||
.createQueryBuilder("user")
|
||||
.leftJoin("user.role", "role")
|
||||
.leftJoin("user.roles", "role")
|
||||
.where("role.name = :roleName", { roleName: RoleEnum.USER })
|
||||
.leftJoin("user.groups", "groups")
|
||||
.addSelect(["groups.id", "groups.name"])
|
||||
.leftJoinAndSelect("user.invoices", "invoices")
|
||||
.leftJoinAndSelect("user.subscriptions", "subscriptions")
|
||||
.leftJoinAndSelect("user.tickets", "tickets");
|
||||
.loadRelationCountAndMap("user.invoicesCount", "user.invoices")
|
||||
.loadRelationCountAndMap("user.subscriptionsCount", "user.subscriptions")
|
||||
.loadRelationCountAndMap("user.ticketsCount", "user.tickets");
|
||||
|
||||
if (queryDto.q) {
|
||||
queryBuilder
|
||||
@@ -422,7 +422,6 @@ export class UsersService {
|
||||
name: RoleEnum.USER,
|
||||
},
|
||||
},
|
||||
relations: ["tickets", "subscriptions", "invoices"],
|
||||
});
|
||||
|
||||
return { customer };
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Body, Controller, Get, HttpCode, HttpStatus, Patch, Post, Query, Res } from "@nestjs/common";
|
||||
import { Body, Controller, Get, HttpCode, HttpStatus, Param, Patch, Post, Query, Res } from "@nestjs/common";
|
||||
import { ApiOperation, ApiTags } from "@nestjs/swagger";
|
||||
import { FastifyReply } from "fastify";
|
||||
|
||||
@@ -20,6 +20,7 @@ import { UsersService } from "./providers/users.service";
|
||||
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
||||
import { PermissionsDec } from "../../common/decorators/permission.decorator";
|
||||
import { UserDec } from "../../common/decorators/user.decorator";
|
||||
import { ParamDto } from "../../common/DTO/param.dto";
|
||||
|
||||
@Controller("users")
|
||||
@ApiTags("users")
|
||||
@@ -107,6 +108,8 @@ export class UsersController {
|
||||
return this.usersService.findAllUsers();
|
||||
}
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
@ApiOperation({ summary: "get all customers ==> admin route" })
|
||||
@PermissionsDec(PermissionEnum.ADMINS, PermissionEnum.CUSTOMERS)
|
||||
@AuthGuards()
|
||||
@@ -115,6 +118,18 @@ export class UsersController {
|
||||
return this.usersService.findAllCustomers(queryDto);
|
||||
}
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
@ApiOperation({ summary: "get all customers ==> admin route" })
|
||||
@PermissionsDec(PermissionEnum.ADMINS, PermissionEnum.CUSTOMERS)
|
||||
@AuthGuards()
|
||||
@Get("customers/:id")
|
||||
customer(@Param() paramDto: ParamDto) {
|
||||
return this.usersService.findOneCustomer(paramDto.id);
|
||||
}
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
@ApiOperation({ summary: "get all admins ==> admin route" })
|
||||
@PermissionsDec(PermissionEnum.ADMINS, PermissionEnum.CUSTOMERS)
|
||||
@AuthGuards()
|
||||
@@ -123,6 +138,8 @@ export class UsersController {
|
||||
return this.usersService.getAdmins(queryDto);
|
||||
}
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
@ApiOperation({ summary: "create admin ==> admin route" })
|
||||
@AuthGuards()
|
||||
@PermissionsDec(PermissionEnum.ADMINS, PermissionEnum.CUSTOMERS)
|
||||
@@ -131,6 +148,8 @@ export class UsersController {
|
||||
return this.usersService.createAdmin(createDto);
|
||||
}
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
@ApiOperation({ summary: "get all permissions ==> admin route" })
|
||||
@AuthGuards()
|
||||
@PermissionsDec(PermissionEnum.ADMINS, PermissionEnum.CUSTOMERS)
|
||||
@@ -139,6 +158,8 @@ export class UsersController {
|
||||
return this.usersService.getPermissions();
|
||||
}
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
@ApiOperation({ summary: "get all roles ==> admin route" })
|
||||
@AuthGuards()
|
||||
@PermissionsDec(PermissionEnum.ADMINS, PermissionEnum.CUSTOMERS)
|
||||
@@ -147,6 +168,8 @@ export class UsersController {
|
||||
return this.usersService.getRoles(queryDto);
|
||||
}
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
@ApiOperation({ summary: "create role ==> admin route" })
|
||||
@AuthGuards()
|
||||
@PermissionsDec(PermissionEnum.ADMINS, PermissionEnum.CUSTOMERS)
|
||||
|
||||
Reference in New Issue
Block a user