Skip to content

Функции поиска

Расширяйте возможности поиска с помощью функций:

java
@Component
public class CurrentDateFunction implements QueryFunction {
    @Override
    public List<QueryValue> getOperands(User user, IssueField field, FunctionOperand operand) {
        return List.of(new QueryValue(LocalDateTime.now()));
    }

    @Override
    public String getFunctionName() {
        return "now";
    }

    @Override
    public boolean isList() {
        return false;
    }

    @Override
    public ClauseValueType getValueType() {
        return ClauseValueType.of(LocalDateTime.class);
    }

    @Override
    public int getMinimumRequiredArguments() {
        return 0;
    }
}

Это пример реализации функции now(). Благодаря привязке к типу LocalDateTime, она будет добавляться в автокомплит к полям с этим же типом, например created или updated.

Регистрация в дескрипторе

yaml
queryFunctions:
  - key: CurrentDateFunction
    name: Current date function
    className: ru.slie.luna.issue.query.func.impl.CurrentDateFunction