gitlab-org--gitlab-foss/spec/models
Yorick Peterse 38b8ae641f
Clean up ActiveRecord code in TodoService
This refactors the TodoService class according to our code reuse
guidelines. The resulting code is a wee bit more verbose, but it allows
us to decouple the column names from the input, resulting in fewer
changes being necessary when we change the schema.

One particular noteworthy line in TodoService is the following:

    todos_ids = todos.update_state(state)

Technically this is a violation of the guidelines, because
`update_state` is a class method, which services are not supposed to use
(safe for a few allowed ones). I decided to keep this, since there is no
alternative. `update_state` doesn't produce a relation so it doesn't
belong in a Finder, and we can't move it to another Service either. As
such I opted to just use the method directly.

Cases like this may happen more frequently, at which point we should
update our documentation with some sort of recommendation. For now, I
want to refrain from doing so until we have a few more examples.
2018-10-08 15:19:12 +02:00
..
application_setting
badges
blob_viewer
ci
clusters
concerns
conversational_development_index
cycle_analytics
diff_viewer
hooks
issue
members
merge_request
network
postgresql
project_services
protected_branch
ability_spec.rb
abuse_report_spec.rb
active_session_spec.rb
appearance_spec.rb
application_setting_spec.rb
award_emoji_spec.rb
badge_spec.rb
blob_spec.rb
board_spec.rb
broadcast_message_spec.rb
chat_name_spec.rb
chat_team_spec.rb
commit_collection_spec.rb
commit_range_spec.rb
commit_spec.rb
commit_status_spec.rb
compare_spec.rb
container_repository_spec.rb
cycle_analytics_spec.rb
deploy_key_spec.rb
deploy_keys_project_spec.rb
deploy_token_spec.rb
deployment_spec.rb
diff_discussion_spec.rb
diff_note_spec.rb
discussion_spec.rb
email_spec.rb
environment_spec.rb
event_collection_spec.rb
event_spec.rb
external_issue_spec.rb
fork_network_member_spec.rb
fork_network_spec.rb
forked_project_link_spec.rb
generic_commit_status_spec.rb
global_milestone_spec.rb
gpg_key_spec.rb
gpg_key_subkey_spec.rb
gpg_signature_spec.rb
group_custom_attribute_spec.rb
group_label_spec.rb
group_milestone_spec.rb
group_spec.rb
guest_spec.rb
identity_spec.rb
import_export_upload_spec.rb
instance_configuration_spec.rb
internal_id_spec.rb
issue_collection_spec.rb
issue_spec.rb
key_spec.rb
label_link_spec.rb
label_note_spec.rb
label_priority_spec.rb
label_spec.rb
legacy_diff_discussion_spec.rb
lfs_file_lock_spec.rb
lfs_object_spec.rb
lfs_objects_project_spec.rb
license_template_spec.rb
list_spec.rb
member_spec.rb
merge_request_diff_commit_spec.rb
merge_request_diff_file_spec.rb
merge_request_diff_spec.rb
merge_request_spec.rb
milestone_spec.rb
namespace_spec.rb
note_diff_file_spec.rb
note_spec.rb
notification_recipient_spec.rb
notification_setting_spec.rb
pages_domain_spec.rb
personal_access_token_spec.rb
programming_language_spec.rb
project_authorization_spec.rb
project_auto_devops_spec.rb
project_ci_cd_setting_spec.rb
project_custom_attribute_spec.rb
project_deploy_token_spec.rb
project_feature_spec.rb
project_group_link_spec.rb
project_import_state_spec.rb
project_label_spec.rb
project_snippet_spec.rb
project_spec.rb Clean up ActiveRecord code in TodosFinder 2018-10-08 15:19:12 +02:00
project_statistics_spec.rb
project_team_spec.rb
project_wiki_spec.rb
prometheus_metric_spec.rb
protectable_dropdown_spec.rb
protected_branch_spec.rb
protected_tag_spec.rb
push_event_payload_spec.rb
push_event_spec.rb
redirect_route_spec.rb
release_spec.rb
remote_mirror_spec.rb
repository_language_spec.rb
repository_spec.rb
resource_label_event_spec.rb
route_spec.rb
sent_notification_spec.rb
service_spec.rb
site_statistic_spec.rb
snippet_blob_spec.rb
snippet_spec.rb
spam_log_spec.rb
subscription_spec.rb
system_note_metadata_spec.rb
term_agreement_spec.rb
timelog_spec.rb
todo_spec.rb Clean up ActiveRecord code in TodoService 2018-10-08 15:19:12 +02:00
tree_spec.rb
trending_project_spec.rb
upload_spec.rb
user_agent_detail_spec.rb
user_callout_spec.rb
user_custom_attribute_spec.rb
user_interacted_project_spec.rb
user_spec.rb
user_status_spec.rb
wiki_directory_spec.rb
wiki_page_spec.rb