discourse/app/services
Loïc Guitaut 584424594e DEV: Replace `params` by the contract object in services
This patch replaces the parameters provided to a service through
`params` by the contract object.

That way, it allows better consistency when accessing input params. For
example, if you have a service without a contract, to access a
parameter, you need to use `params[:my_parameter]`. But with a contract,
you do this through `contract.my_parameter`. Now, with this patch,
you’ll be able to access it through `params.my_parameter` or
`params[:my_parameter]`.

Some methods have been added to the contract object to better mimic a
Hash. That way, when accessing/using `params`, you don’t have to think
too much about it:
- `params.my_key` is also accessible through `params[:my_key]`.
- `params.my_key = value` can also be done through `params[:my_key] =
  value`.
- `#slice` and `#merge` are available.
- `#to_hash` has been implemented, so the contract object will be
  automatically cast as a hash by Ruby depending on the context. For
  example, with an AR model, you can do this: `user.update(**params)`.
2024-10-25 14:48:34 +02:00
..
admin_notices DEV: Provide user input to services using `params` key 2024-10-25 09:57:59 +02:00
experiments DEV: Replace `params` by the contract object in services 2024-10-25 14:48:34 +02:00
flags DEV: Replace `params` by the contract object in services 2024-10-25 14:48:34 +02:00
notifications FEATURE: Consolidate link notifications (#26567) 2024-04-09 11:53:37 -06:00
problem_check FIX: Don't clear inline problems when loading admin dashboard (#28220) 2024-08-05 11:45:55 +08:00
site_setting DEV: Replace `params` by the contract object in services 2024-10-25 14:48:34 +02:00
spam_rule
user DEV: Replace `params` by the contract object in services 2024-10-25 14:48:34 +02:00
anonymous_shadow_creator.rb DEV: Update to lastest rubocop-discourse 2024-05-27 18:06:14 +02:00
badge_granter.rb DEV: Remove logical OR assignment of constants (#29201) 2024-10-16 10:09:07 +08:00
base_bookmarkable.rb FIX: Show deleted bookmark reminders in user bookmarks menu (#25905) 2024-02-29 09:03:49 +10:00
category_hashtag_data_source.rb DEV: Use safer SQL functions for string queries in CategoryHashTagDataSource (#26836) 2024-05-01 13:27:46 -05:00
color_scheme_revisor.rb
destroy_task.rb
email_settings_exception_handler.rb FIX: Show the SMTP authentication error for group UI (#27914) 2024-07-16 09:14:17 +10:00
email_settings_validator.rb UX: Use a dropdown for SSL mode for group SMTP (#27932) 2024-07-18 10:33:14 +10:00
email_style_updater.rb
external_upload_manager.rb
group_action_logger.rb
group_mentions_updater.rb
group_message.rb FIX: crawler view with unicode usernames (#27051) 2024-05-16 17:11:24 +02:00
handle_chunk_upload.rb
hashtag_autocomplete_service.rb
heat_settings_updater.rb
inline_uploads.rb
notification_emailer.rb DEV: Update to lastest rubocop-discourse 2024-05-27 18:06:14 +02:00
post_action_notifier.rb
post_alerter.rb FEATURE: add delay to native push notifications (#28314) 2024-08-13 12:12:05 +04:00
post_bookmarkable.rb FIX: Serialize categories for bookmarks (#26606) 2024-04-17 17:23:47 +03:00
post_owner_changer.rb
push_notification_pusher.rb DEV: Remove logical OR assignment of constants (#29201) 2024-10-16 10:09:07 +08:00
random_topic_selector.rb
registered_bookmarkable.rb FIX: Show deleted bookmark reminders in user bookmarks menu (#25905) 2024-02-29 09:03:49 +10:00
search_indexer.rb DEV: Remove logical OR assignment of constants (#29201) 2024-10-16 10:09:07 +08:00
sidebar_section_links_updater.rb DEV: Limit the number of category sidebar links a user can have (#26756) 2024-04-25 13:21:39 -05:00
sidebar_site_settings_backfiller.rb
site_setting_update_existing_users.rb DEV: Allow fetching specific site settings and introduce a service for updating site settings (#27481) 2024-06-14 13:07:27 +03:00
site_settings_task.rb FEATURE: mandatory fields for group site setting (#26612) 2024-04-18 08:53:52 +10:00
staff_action_logger.rb DEV: Remove logical OR assignment of constants (#29201) 2024-10-16 10:09:07 +08:00
tag_hashtag_data_source.rb
theme_settings_migrations_runner.rb DEV: Switch to pnpm for JS dependencies (#28671) 2024-09-03 10:51:07 +01:00
themes_install_task.rb
topic_bookmarkable.rb FIX: Serialize categories for bookmarks (#26606) 2024-04-17 17:23:47 +03:00
topic_status_updater.rb FIX: Message for bulk closing topics silently (#27400) 2024-06-11 09:36:54 +10:00
topic_timestamp_changer.rb
tracked_topics_updater.rb
trust_level_granter.rb
user_action_manager.rb FIX: permanent delete of posts by deleted users (#28992) 2024-09-24 12:26:31 +03:00
user_activator.rb FIX: do not enforce 2fa when an account is created with OAuth (#28625) 2024-08-29 11:19:04 +10:00
user_anonymizer.rb
user_authenticator.rb FIX: do not enforce 2fa when an account is created with OAuth (#28625) 2024-08-29 11:19:04 +10:00
user_destroyer.rb
user_merger.rb FEATURE: Merge user associated accounts, favouring the target user upon conflict (#26645) 2024-04-16 17:37:33 +08:00
user_notification_renderer.rb
user_notification_schedule_processor.rb
user_password_expirer.rb DEV: Migrate user passwords data to UserPassword table (#28746) 2024-10-10 09:23:06 +08:00
user_silencer.rb
user_stat_count_updater.rb
user_suspender.rb SECURITY: Don't allow suspending staff users via other_user_ids param 2024-07-03 20:49:29 +08:00
user_updater.rb FEATURE: User fields required for existing users - Part 2 (#27172) 2024-06-25 19:32:18 +08:00
username_changer.rb
username_checker_service.rb
web_hook_emitter.rb DEV: Move webhook event header modifier for redelivery-recalucation (#27177) 2024-05-24 10:37:10 -05:00
wildcard_domain_checker.rb
wildcard_url_checker.rb
word_watcher.rb DEV: Remove logical OR assignment of constants (#29201) 2024-10-16 10:09:07 +08:00