docbrown/app/controllers
rhymes 83852038e4
[Search 2.0] Reading list (#13052)
* Step one in populating the reading list with PG

This first attempt tries to recycle the `Search::ArticleSerializer` which is only
used in input in ES, but we're using it in output in PG.
For this reason it's currently 15.55x times slower

* Serialize only what is requested by the frontend

`Search::ArticleSerializer` which is only used in ES in the indexing step aims
to add as much info as possible for broader purposes, in this case
(with serialization in output) we should aim to save only what's requested from
the frontend.

* Optimize selection of articles columns

* Select only needed columns for users

* Compute total of reading list items

* Attach the basic filtering based on PG on the search controller

* Restructure in methods

* Add tags support

* Use LIKE on articles.cached_tag_list

* Fix tags as nil

* Fix default pagination

* Add optional FTS for reading list

* Reworded the tags comment explaining why

* Add index to reactions.status

* Fix total counter in Preact readingList component

* Fix total count in reading list backend search

* Add GIN index to articles.cached_tag_list

* Add service tests

* Add search request specs

* Added missing early return

* Update spec/requests/search_spec.rb

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

* Extract MAX_PER_PAGE constant and add comments

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2021-03-24 15:40:00 +01:00
..
admin Remove buffer gem and related code: step 1 (#12993) 2021-03-24 09:58:38 +07:00
api/v0 Add mobile push notifications to Forem (#12419) 2021-03-12 14:08:18 -06:00
concerns Prevent suspended users from self-deleting and returning (#12503) 2021-02-11 09:28:59 +07:00
incoming_webhooks Rubocop: fix additional violations in todo file (#9218) 2020-07-09 10:25:44 -04:00
notifications Rubocop: fix additional violations in todo file (#9218) 2020-07-09 10:25:44 -04:00
oauth Change Webhook::DestroyJob to Wehook::DestroyWorker and move to sidekiq (#5424) [deploy] 2020-01-13 12:38:10 -06:00
stories Remove timeframer from app/labor (#11782) 2020-12-08 12:52:33 +07:00
api_secrets_controller.rb Add contact email to SiteConfig and replace default where appropriate (#11630) 2020-11-27 16:39:38 +01:00
application_controller.rb Revert "Revert "Removed service worker (#12974)" (#13014)" (#13015) 2021-03-17 10:57:56 -04:00
application_metal_controller.rb Add ApplicationMetalController to relevant controllers (#4937) 2019-11-26 16:29:07 -05:00
article_approvals_controller.rb Allow tag mods to approve posts even if they mod just one tag (#6525) [deploy] 2020-03-08 15:42:38 -04:00
articles_controller.rb Remove buffer gem and related code: step 1 (#12993) 2021-03-24 09:58:38 +07:00
async_info_controller.rb Reduce service worker functionality to minimal offline page (#12834) 2021-03-01 19:29:26 -05:00
badges_controller.rb Add badges index page. (#4236) 2019-10-06 17:34:52 -04:00
chat_channel_memberships_controller.rb Fix "possible unprotected redirect" warning (#10511) 2020-12-29 14:54:34 -05:00
chat_channels_controller.rb Parenthesis consistency for add_role and remove_role (#12661) 2021-02-15 20:35:25 +02:00
collections_controller.rb Fix Bug: Series index page showing series with 0 articles -#9658 (#11227) 2020-11-03 09:10:46 +01:00
comments_controller.rb Make definition of new user configurable (#12999) 2021-03-23 14:13:06 +07:00
confirmations_controller.rb Add flash message for email confirmation (#12450) 2021-01-28 09:32:04 +07:00
credits_controller.rb Set Stripe dynamically instead of at boot (#9862) 2020-08-19 21:24:19 -04:00
dashboards_controller.rb Fixes unsafe reflection warning in dashboards_controller (#10094) 2020-09-01 10:22:00 +07:00
devices_controller.rb Change PushNotifications::Send to use user_ids (#13036) 2021-03-19 13:50:04 -06:00
display_ad_events_controller.rb [15-minute fix] Add ThrottledCall to DisplayAdEventsController (#12924) 2021-03-09 09:06:11 +07:00
email_authorizations_controller.rb Standardize ActiveRecord order clauses (#9395) 2020-07-20 10:00:51 -04:00
email_subscriptions_controller.rb [deploy] Add community_name to site config (#9864) 2020-08-19 14:54:40 -04:00
events_controller.rb Return a 404 response If @event is Not Found (#5798) [deploy] 2020-02-03 11:30:52 -05:00
feedback_messages_controller.rb Email confirmation to abuse reports (#12557) 2021-02-03 22:59:50 +03:00
followings_controller.rb Rubocop: move dot in multi-line calls to leading position (#9262) 2020-07-16 15:51:11 +02:00
follows_controller.rb Abstract DatadogStatsClient to ForemStatsClient (#12304) 2021-01-27 11:25:44 -05:00
ga_events_controller.rb [deploy] Add ga tracking to config (#10150) 2020-09-04 09:37:16 -04:00
github_repos_controller.rb [deploy] Fix bug in determining if repo is featured (#8676) 2020-06-15 16:39:30 +02:00
html_variant_successes_controller.rb Move HtmlVariantSuccessesCreate from job to inline (#5879) [deploy] 2020-02-04 10:24:39 -08:00
html_variant_trials_controller.rb Move HtmlVariantTrial#create inline (#5901) [deploy] 2020-02-04 17:29:46 -08:00
image_uploads_controller.rb [deploy] Store Article's main_image path unprocessed (#10867) 2020-10-16 14:46:37 -04:00
invitations_controller.rb Part One: Fix Users Stuck in a "Created" but "Unregistered" State (#10882) 2020-10-19 16:51:31 -04:00
liquid_embeds_controller.rb Modify headers to allow embed (#3935) 2019-09-03 16:38:04 -04:00
liquid_tags_controller.rb [deploy] Add LiquidTagsController (#10241) 2020-09-08 12:07:33 -04:00
listings_controller.rb Fixing missing category in listing modal (#11301) 2020-11-06 12:29:20 -05:00
messages_controller.rb [deploy] Include APP_NAME in Pusher channels (#10001) 2020-08-31 08:28:46 -04:00
moderations_controller.rb Bug Fix:Remove Score Filter From Tag Mod Index (#11599) 2020-11-24 14:18:14 -06:00
notification_subscriptions_controller.rb Rubocop: move dot in multi-line calls to leading position (#9262) 2020-07-16 15:51:11 +02:00
notifications_controller.rb Enable Rubocop 0.89 cops and fix Lint/ violations (#9709) 2020-08-10 16:57:12 +02:00
omniauth_callbacks_controller.rb Prevent suspended users from self-deleting and returning (#12503) 2021-02-11 09:28:59 +07:00
onboardings_controller.rb Cache onboarding at edge (#6966) 2020-03-31 16:12:14 +02:00
open_search_controller.rb [deploy] Remove need for ENV vars during asset precompile (#10349) 2020-09-16 13:57:05 -04:00
organizations_controller.rb Update bust_user to EdgeCache::BustUser (#12051) 2020-12-29 09:53:00 +01:00
page_views_controller.rb Extract page view updates into workers (#12686) 2021-02-17 09:24:05 +07:00
pages_controller.rb Revert "Revert "Removed service worker (#12974)" (#13014)" (#13015) 2021-03-17 10:57:56 -04:00
partnerships_controller.rb Refactored creating sponsorships (#7946) 2020-05-19 18:00:01 -04:00
passwords_controller.rb Verify current password on password change (#12174) 2021-01-21 12:40:54 +07:00
podcast_episodes_controller.rb Remove unused podcast episode related code (#12642) 2021-02-10 17:47:39 +01:00
podcasts_controller.rb Standardize ActiveRecord order clauses (#9395) 2020-07-20 10:00:51 -04:00
poll_skips_controller.rb Small ActiveRecord optimizations: begone race conditions and hello bulk insert (#8436) 2020-06-15 17:57:14 +02:00
poll_votes_controller.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
pro_accounts_controller.rb Add basic pro accounts lander test (#3433) 2019-07-09 22:10:50 -04:00
profile_field_groups_controller.rb Add ProfileFieldGroupsController to API (#10124) 2020-09-03 10:12:53 +07:00
profile_pins_controller.rb Refactor cache purging (#12811) 2021-03-02 10:09:05 -05:00
profiles_controller.rb Save valid attributes with ignoring the invalid ones (#12633) 2021-03-24 10:42:58 +01:00
pusher_controller.rb [deploy] Include APP_NAME in Pusher channels (#10001) 2020-08-31 08:28:46 -04:00
rating_votes_controller.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
reactions_controller.rb Rubocop: enable and fix new Rails cops (#9537) 2020-07-29 11:14:19 +02:00
reading_list_items_controller.rb [deploy] Fix Reading List Counter Without last_reacted_at Default (#10933) 2020-10-19 13:26:19 -05:00
registrations_controller.rb Revert "Revert "Removed service worker (#12974)" (#13014)" (#13015) 2021-03-17 10:57:56 -04:00
response_templates_controller.rb Add ApplicationRecord#errors_as_sentence (#8265) 2020-06-04 16:02:41 +02:00
search_controller.rb [Search 2.0] Reading list (#13052) 2021-03-24 15:40:00 +01:00
service_worker_controller.rb Revert "Revert "Removed service worker (#12974)" (#13014)" (#13015) 2021-03-17 10:57:56 -04:00
shell_controller.rb Reduce service worker functionality to minimal offline page (#12834) 2021-03-01 19:29:26 -05:00
sidebars_controller.rb generalise sidebar campaign published article timeframe (#12278) 2021-01-19 08:40:39 -06:00
sitemaps_controller.rb Rubocop: move dot in multi-line calls to leading position (#9262) 2020-07-16 15:51:11 +02:00
social_previews_controller.rb Rubocop: enable and fix new Rails cops (#9537) 2020-07-29 11:14:19 +02:00
stories_controller.rb Get the correct episode by finding the given podcast's episodes (#13034) 2021-03-18 12:02:37 -04:00
stripe_active_cards_controller.rb Abstract DatadogStatsClient to ForemStatsClient (#12304) 2021-01-27 11:25:44 -05:00
tag_adjustments_controller.rb Fix new Rubocop violations (#10808) 2020-10-20 09:28:53 -04:00
tags_controller.rb Remove resource_admin dashboards (Administrate) (#11792) 2020-12-08 12:38:13 -06:00
user_blocks_controller.rb Add ApplicationRecord#errors_as_sentence (#8265) 2020-06-04 16:02:41 +02:00
user_subscriptions_controller.rb UserSubscription backend refactor (#9060) 2020-07-02 12:08:37 -04:00
users_controller.rb Add username to onboarding (#12697) 2021-02-24 10:48:31 -06:00
video_states_controller.rb [deploy] Refactor/Feature:Use SiteConfig video_encoder_key For Processing Videos (#10848) 2020-10-15 10:16:50 -05:00
videos_controller.rb Rubocop: Enable and fix Style/StringConcatenation (#9844) 2020-08-18 14:50:15 +02:00