Для разрешения некоторых проблем напрашивалось попутно после получения данных об issue из redmine делать преобразования

Примеры:

1. Преобразовать дату+вермя из текстового формата в числовой для возможности фильтрации данных с помощью сравнивающих операторов - больше и меньше.
2. Привести текстовое значение тегов к массиву для фильтрации данных с помощью оператора "$in".
3. Можно извлечь из описания и комментариев ссылки на MR-ы в gitlab-е.
4. Определить текущего ответственного за задачу по правилам соответствия статусу одному из полей - "Назначено", "Code Reviewer", "Quality Assurance".

Через конфигурационный файл уже не решить настройку, т.к. за преобразования задач отвечают функции - а если точнее то классы с реализацией интерфейса `IssueEnhancerInterface`. Это делается в коде проекта Pinkmine. Примеры реализаций в файлах:

- `libs/event-emitter/src/issue-enhancers/timestamps-enhancer.ts` - преобразует дату+время из текстового формата в числовой
- `libs/event-emitter/src/issue-enhancers` - в папке ещё несколько универсальных примеров (не зависящих от экземпляра redmine)
- `src/issue-enhancers` - в папке лежат дополнительные примеры с функциями уже привязанными к рабочему redmine и специфичные для рабочих проектов

Чтобы эти функции отрабатывали налету после получения данных из redmine и перед сохранением в кеш, то нужно при начальной инициализации приложения (`src/app.module.ts` > `AppModule.onModuleInit`) указать набор реализаций `IssueEnhancerInterface`. Упрощённый код, отражающий суть:

```ts
export class AppModule {
  // ...
  onModuleInit() {
    // ...
    this.enhancerService.addEnhancer([
      this.timestampEnhancer,
      this.customFieldsEnhancer,
      this.currentUserEnhancer,
      this.issueUrlEnhancer,
      this.categoryMergeToTagsEnhancer,
      this.calendarEnhancer,
    ]);
    // ...
  }
  // ...
}
```

Схематически процесс можно проиллюстрировать так:

![Преобразования задач](../_resources/Преобразования%20задач.png)

Выполнение преобразований данных до сохранения в кеш в CouchDB позволяет в последствии использовать дополнительные данные для выборки задач