Вставить в несколько коллекций на основе типа в узле, используя машинопись - PullRequest
0 голосов
/ 14 февраля 2020

Я новичок в узле и машинописи. У меня есть следующий запрос на 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");
}

Но здесь, независимо от типа зарплаты все свойства были вставлены в коллекцию. Как я могу использовать один сервис для вставки их в разные коллекции на основе параметра типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...