Для разрешения некоторых проблем напрашивалось попутно после получения данных об 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 позволяет в последствии использовать дополнительные данные для выборки задач