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