Я новичок в узле и машинописи. У меня есть следующий запрос на swagger.
{
"manager": "9000",
"asstmanager": "999",
"name": "string",
"salarytype": 0
}
Если мой тип зарплаты равен 0, мне нужно вставить manager, asstmanager и salarytype в коллекцию зарплат. Если у меня есть следующий запрос с типом зарплаты 1
{
"manager": "string",
"asstmanager": "string",
"name": "clerk",
"salarytype": 1
}
, мне нужно вставить имя и тип зарплаты в коллекцию обозначений. Для этого я написал следующий код в контроллере
public createSalary = async (req: Request, res: Response, next: NextFunction) => {
if (req.body.salarytype == 0) {
const userData: CreateSalaryDto = req.body;
try {
const createUserData: Salary = await this.userService.createSalary(userData);
res.status(201).json({ data: createUserData, message: 'created' });
} catch (error) {
next(error);
}
} else {
const desg: CreateDesignationDto = req.body;
try {
const designation: Designation = await this.userService.createDesignation(desg);
res.status(201).json({ data: designation, message: 'created' });
} catch (error) {
next(error);
}
}
}
Ниже приведены функции createSalary и createDesignation соответственно
public async createSalary(userData: CreateSalaryDto): Promise<Salary> {
const user = await this.salary.create(userData);
if (user) return user;
throw new HttpException(409, "You're not user");
}
public async createDesignation(userData: CreateDesignationDto): Promise<Designation> {
const user = await this.designation.create(userData);
if (user) return user;
throw new HttpException(409, "You're not user");
}
Но здесь, независимо от типа зарплаты все свойства были вставлены в коллекцию. Как я могу использовать один сервис для вставки их в разные коллекции на основе параметра типа.