• Yorick Peterse's avatar
    Refactor AutocompleteController · 6f3c4901
    Yorick Peterse authored
    This refactors the AutocompleteController according to the guidelines
    and boundaries discussed in
    https://gitlab.com/gitlab-org/gitlab-ce/issues/49653. Specifically,
    ActiveRecord logic is moved to different finders, which are then used in
    the controller. View logic in turn is moved to presenters, instead of
    directly using ActiveRecord's "to_json" method.
    
    The finder MoveToProjectFinder is also adjusted according to the
    abstraction guidelines and boundaries, resulting in a much more simple
    finder.
    
    By using finders (and other abstractions) more actively, we can push a
    lot of logic out of the controller. We also remove the need for various
    "before_action" hooks, though this could be achieved without using
    finders as well.
    
    The various finders related to AutcompleteController have also been
    moved into a namespace. This removes the need for calling everything
    "AutocompleteSmurfFinder", instead you can use
    "Autocomplete::SmurfFinder".
    6f3c4901
user_spec.rb 94.9 KB