Extract logic of who should receive notification into separate classes
As noted in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6813#note_16937503:
all the logic related to who's watching something, or who should be notified, ideally should be placed in a separate class, not inside the service responsible for notifications
Also, methods name will need to be improved:
For example, this method doesn't return a
setting
, but returnsusers
. And other methods that haveusers
in the name actually returnuser_ids
...