visible/visible

View on GitHub
packages/@visi/web-server/src/interfaces/presenters/rule-presenter.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { injectable } from 'inversify';

import { Rule, RuleType } from '../../domain/models';
import { API } from './types';

@injectable()
export class RulePresenter {
  transformRuleType(ruleType: RuleType): API.RuleType {
    switch (ruleType) {
      case RuleType.ATOMIC:
        return API.RuleType.Atomic;
      case RuleType.COMPOSITE:
        return API.RuleType.Composite;
    }
  }

  run(rule: Rule): API.Rule {
    return {
      id: rule.id,
      coreId: rule.coreId,
      name: rule.name,
      type: this.transformRuleType(rule.type),
      description: rule.description,
      keywords: rule.keywords,
      mapping: rule.mapping,
    };
  }
}