* Initial field test spec work
* Clean up specs
* Fix codeclimage
* Cleanups
* Update names
* Rename and remove need to pass logged in status
* Leadup to prod: two experiments
* Move test logic to controller and add tests
Co-authored-by: Josh Puetz <josh@grorichpuetz.com>
* Add published field to ClassifiedListing
* Add back query_conditions conditional
* Don't allow searches for unpublished listings
* Fix comment typo...oops!
* Add Transport module to Search
* Test public methods only
* Add Search::Client with exception handling
* Remove Transport and request do
* Replace SearchClient with Search::Client
* Upgrade stripe and stripe-ruby-mock
* Replace .all with .list
* Replace .delete with .detach_source and add tests
* Fix credits spec
* Refactor StripeActiveCardsController to use Payments::Customer and fix specs
* Use the right notice to show feedback to the user
* Skip moderation notification if the user is the moderator
* Update spec/workers/notifications/moderation_notification_worker_spec.rb
Co-Authored-By: Vaidehi Joshi <vaidehi.sj@gmail.com>
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* Add ClassifiedListingEsIndexWorker & spec
* Update ClassifiedListing model
- Add es index methods (inline and async)
- Index ClassifiedListing to es after_commit
- Add serialized_search_hash
- Update model specs for new methods
- Add serializers referenced in new model method
* Update specs
* Create DataUpdateScript to index ClassifiedListings
* Fix formatting
* Fix codeclimate :/
* Use match_array instead of keys.sort
* Change find_by! to find
* Update spec
* Update mappings for ClassifiedListing
* Update specs
* Implement refactor with Searchable module
* Add json support at stories/index endpoint
* Tweak tests
* Add main image
* Some light refactoring in StoriesController
* Tiny test refactor
* Split feed generation to it's own controller
* Use Jbuilder for article formatting
* Blank lines thanks Rubocop
* Don't cache this response: we want it generated per use each time
* Whoops!
* PR changes and tweaks to Timeframmer constants
* Remove initializer test since arguments aren't required
* Add sink user service and specs for mass vomits
* Use new score calculation
* Lower articles' scores instead and make async
* Add lower score functionality to controllers
* Remove unused variable
* Use correct var and add missing arg
* Remove unused status
* Add composite index for reactable_type and ID
* Use alias instead of additional boolean
* Use medium priority for sink worker
* Log to honeybadger and not logs
* Log the error and not a string
* Convert SponsorshipDecorator to Rails decorator
* Remove empty ReactionDecorator
* Rename SponsorshipDecorator#level_color_hex to level_background_color
* Convert CommentDecorator to Rails decorator
* Add specs and fix bugs for NotificationDecorator
* Convert NotificationDecorator to Rails decorator
* Add specs and fix bugs for OrganizationDecorator
* Convert OrganizationDecorator to Rails decorator
* Add specs to PodcastEpisodeDecorator and fix bugs
* Convert PodcastEpisodeDecorator to a Rails decorator
* Add missing specs for ArticleDecorator and fix bugs
* Convert ArticleDecorator to Rails decorator
* Add missing specs to UserDecorator and fix issues
* Convert UserDecorator to Rails decorator
* Add .decorate_collection method
* Add decorator for AR relations and remove Draper
* Rename BaseDecorator back to ApplicationDecorator
* Rename .decorate_ back to .decorate
* Restore decorate_collection (WTH)
* Add decorated?
* Fix bugs and failing specs
* Decoration should always be explicit
* Add more Broadcasts to seeds for welcome notification flow
* Remove unnecessary welcoming_user_id from development config
* Add basic service class for generating appropriate broadcast per user
Eventually, this should be called from a rake task that will rely on this service to determine which broadcast, if any, is the appropriate one to send to newly signed-up users, and will enqueue a worker to create/send a welcome notification when appropriate.
* Add a few TODOs, plus some general cleanup
* Add some skipped tests for WelcomeNotification::Generator
* Add "Welcome" type to Broadcasts, allow dynamic "authoring" of Broadcasts
This adds a new `type_of` to the Broadcast model: "Welcome". As we begin to create a new "welcome notification" workflow, we'll categorize them by making them all of the same type.
This also adds a concept of a "welcoming user", which can be set via an ENV var. The WELCOMING_USER_ID will allow us to explicitly set (and change) which user in the database is the one that "sends" welcoming notification. In production, we plan for this to be dev.to/sloan.
* Allow WelcomeNotificationWorker to accept + send any kind of broadcast
This abstracts out the logic of deciding which broadcast to send from the woker into the calling method. This will help us send many different kinds of welcome notifications using one, resuable worker class.
* Raise if a Notification can't be created
* Add STAFF_USER_ID as an ENV var
This is in preparation for moving away from SiteConfig.staff_user_id, and replacing it with an ENV var. We will need to set this in production first, and then make a separate PR to replace all instances of staff_user_id with the newly-set ENV var.
* Consolidate `.decorate` calls
* Move Activerecord finders out of main stories feed partial
* Add back in decorates to sticky_articles partial
* Combine top and new articles returned from StoriesController
* Extract feed construction logic to a service
* Some PR tweaks (naming)
* Quick test fix
* Index tags to Elasticsearch after they are created
* add rules_html to Tag index since we show it in search drop down
* change get method to find_document to make it more explicit
* Fix logging for dev and test environments
We had some unused code for Timber in our config files for development and test.
However, this was completely clobbering Rails' default behavior of logging out to log/development.log and log/test.log. We should allow for logging in these environments in particular, and since we're not using Timber there, we can just revert to using the Rails default debugging log levels.
* Add Timber logger to specs that explicitly require it
* Restore default Rails.logger in specs using Timber logger
* Explicitly use Rails.logger in OmniauthCallbacksController
We seem to have different logger classes leaking into this controller in tests.
I'm not entirely sure why this is/haven't been able to investigate yet, but I do think we should be using the Rails.logger explicitly until we can figure that out.