* Log to DataDog when a welcome notification is created
* Fix typo in Metrics::RecordDailyUsageWorker
* Add Metrics::RecordDailyNotificationsWorker to log notification counts to DataDog
* Add specs around DataDog logging for welcome notifications + click events
* Call Metrics::RecordDailyNotificationsWorker from within log_daily_usage_measurables task
* Use user_id instead of user, move notification title into tags
* Fix Style/SingleLineBlockParams
* Fix RSpec/MultipleExpectations and Layout/LineLength
* Restore test to previous version for speed
* Remove useless params
* Refactor controller validations to model
* Update specs and move current email validation back
* Refactor #subscribed
* Cleanup UserSubscriptions::Create service
* Refactor service
* Move source inside of call for clarity
* Specs for UserSubscription::Create
* Cleanup spec
* Fix Article spec
* Updated for subscriber_email
* Add comment for explicitness of subscriber_email
* Fix reference in comment...oops!
* I know what I'm doing...sometimes...maybe
* Rename CachChecker - Subscription to IsSubscribed
* Use include vs eq in specs for error messages
* attr_accessor --> attr_reader
* Don't explicitly set nil
* Rename Create service to CreateFromService
* Use errors_as_sentence
* Rename service to CreateFromControllerParams
* Assign Struct to a new constant
* Create "blank" EmailSubscriptionTag
* Refactor liquid_tags_used with spec
* Create /user_subscriptions#create
- Update liquid tag name to UserSubscriptionTag
* Add rate limiting and specs
* Add counter_culture for user_subscriptions
* Update /async_info/base_data
- Alphabetize user_data
- Add email
- Add subscription_source_article_ids
- Cache subscription_source_article_ids on User model
* Add stale email check and specs
* Change user_email to subscriber_email for clarity
* Restrict UserSubscriptionTag
* Rename RESTRICTED_TAGS to RESTRICTED_LIQUID_TAGS
* Make TODO comment more clear
* Refactor error responses and update specs
* Update type to source_type in error message
* Use constantize over safe_constantize
* Add check for active source
* Refactor checking of current_user's subscriptions
- Remove data from async_info
- Create a new service to fetch/cache a user's existing subscriptions
* Restrict email in base_data to admin roles
* Oops! Rename liquid tag file
* Change error back to result...oops!
* It's not goodbye, it's see you later. RIP email :/
* Add current_email to /user_subscriptions/base_data
* Revert adding current_email
* Undo async_info_controller changes/fix conflict
* Move params to constant
* Refactor SubscriptionCacheChecker
* Remove duplicate status code in JSON response
* Remove duplicate status code for #subscribed
* Use response.parsed_body
* Remove user guard in SubscriptionCacheChecker
* Replace Credits.import with .insert_all
* Fix Notifications::Reactions::Send and replace .import with .upsert to avoid race conditions
* Replace .import! with .upsert_all in Notifications::NotifiableAction::Send
* Replace PodcastEpisode.import! with upsert
* Stop testing gems, test the code
* Remove activerecord-import
* Fix redundancies
* clarify comment
* Replace Credit.import with insert_all
* hello knapsack
* Do not try to insert if there is nothing to
* Implement search ordering by allowing sort_by and sort_direction
params to be passed through from the search form/page.
* Change ID of select to 'sort' instead of 'order' for consistency
* Fix styling and data attributes of select options
* Enable front end to pass sort_by and sort_direction params for searches to the back end
* Ensure that only query string params that are supposed to be changed are changed in each function
* Respond to review comments (additional commits to come but these were the quick changes)
* Move options for select into template
* Use addEventListener instead of using onchange in response to review comments
* Add tabs for sorting search results
* Finish implementing tabs for ordering search results
* Remove CSS rule applying to element that no longer exists
* Remove more rules created for an element that has been removed
* Remove more code added for the select dropdown that I've removed
* Remove duplicate jobs banner
* Add download_broadcast to generator.rb
* Adds memoized download_broadcast method
* Adds send_download_notification method
* Adds send_download_notification to call method
* Add download_app to broadcasts.rb and seeds.rb
* Adds download_app broadcast info and copy to factory
* Adds download_app copy to seeds
* Add specs around #send_download_app_notification in generator_spec.rb
* Fix quotes around copy
* Remove extra space within copy
* Change models and related files
* Update controllers and specs
* More renaming
* Seek and destroy, I mean search and replace
* Round up the stragglers
* Ground control to Major Travis...
* More fixes
* PR feedback
* Various fixes
* Rename view
* Fix list query builder
* Unify request specs
* Fix some API spec errors
* Fix remaining API specs
* Make spec conform to API
* Fix leftover problems
* Fix JS tests
* Fix column name in select
* Fix API specs
* Fix search specs
* Paging Mr. Travis
* Rename positive_reactions_count to public_reactions_count
* Add positive reactions count back in so we can remove it
* Use public_category method for reactions
* Add positive_reactions_count in case any old caches rely on it
* Add positive_rxn_count to account for API endpoints
* Remove unused method
* One more spot...
* Add method back in because of caches
* Update specs to match new functionality
* Fix typo
* Remove unused methods
* Use .textContent to apply Search Snippets
* Improve var name
* Apply HTML encoder to FeedContent's query
* Add spec
* Expand FeedContent specs
* Actually let's not use approval
* Add TwitterClient::Client
* Use TwitterClient::Client for Tweet
* Test retweets
* Test assignment to user
* Fix TweetTag spec
* Remove TwitterBot
* Fix some specs
* Fix RSS Reader specs
* Introduce Github::OAuthClient and refactor shortcut Github::Client
* Better stubbing and fix specs
* Fix Badge rewarder
* Add dummy values for Travis
* Fix spec?
* Simplify
* Fix spec take 2?
* Is this the right one?
* Hopefully this is the last time, for realz
* Fix spec for the nth time?
* Which deity do I have to offer a sacrifice to?
* This is it
* Fix Honeycomb name
* Feature 🚀 : Ability to delete messages in chat channels
- Sending message ID to frontend
- Deleting Message
- Use pusher to delete message realtime
* Minor Bug 🐞: Show message action only for current user
- User can delete or edit their own messages
* Test cases added
* Bug 🐞: Update message id for receiver
Message id was not sent to receiver by pusher
* Refactoring🛠: Message controller refactoring
* Test Cases📝 : Specs for Delete message added
* Feature 🚀 : Ability to edit messages
* Test Cases📝 : Specs for Edit message added
* added new column discoverable for public channel and changes in elasticsearch
* fix corrections
* changes in serializer file, added channel_discoverable
* added checkbox with discoverable policy
* changes in code for discoverable channels
* accept and reject member invitation by mod
* add joining request to closed groups
* fixed merge error
* changes in joining member to closed groups
* join to closed group
* changes in message action of joining
* changes in chat upopened json
* 🚀Feature : Ability to search Global Channels
* touch updated_at in after commit update
* 🚀Feature : Ability to send request to discoverable channel
* 🚀Feature : Ability to send request to discoverable channel
* created new route for joining closed channel
* 🚀 Success handle on joining request sent
* removed redundant code
* join_channel improvement, removed authorization for join channel
* list of joining requests
* added joining_request status channels on search list
* changes in mailer and query builder optimized
* 🛠 Adding filter for new Query
* added rspec for add membership method in controller
* rspec for sending join channel request
* invite join request channel list rspec
* test case for query builder discoverable
* viewable and discoverable channel list
* refactored logic for search channels
* 🚀 Check if Request already sent
* 🛠 Optimizing code and making channelButton Component
* 🛠 Optimizing codefor SVG problem
* 🛠 Optimized action.js
* changes in search controller query
* hot fix
* removed unwanted code
* 🛠 Fix the Channel Name problem
* 🛠 Optimizing code further for CodeClimate
* added new column discoverable for public channel and changes in elasticsearch
* fix corrections
* changes in serializer file, added channel_discoverable
* added checkbox with discoverable policy
* changes in code for discoverable channels
* accept and reject member invitation by mod
* add joining request to closed groups
* fixed merge error
* changes in joining member to closed groups
* join to closed group
* changes in message action of joining
* changes in chat upopened json
* touch updated_at in after commit update
* 🚀Feature : Ability to search Global Channels
* 🚀Feature : Ability to send request to discoverable channel
* 🚀Feature : Ability to send request to discoverable channel
* created new route for joining closed channel
* 🚀 Success handle on joining request sent
* removed redundant code
* join_channel improvement, removed authorization for join channel
* list of joining requests
* added joining_request status channels on search list
* changes in mailer and query builder optimized
* added rspec for add membership method in controller
* rspec for sending join channel request
* invite join request channel list rspec
* 🛠 Adding filter for new Query
* test case for query builder discoverable
* viewable and discoverable channel list
* refactored logic for search channels
* 🚀 Check if Request already sent
* 🛠 Optimizing code and making channelButton Component
* 🛠 Optimizing codefor SVG problem
* 🛠 Optimized action.js
* changes in search controller query
* hot fix
* 🛠 Fix the Channel Name problem
* 🛠 Fixing merge problem
* 🛠 Optimizing code further for CodeClimate
* updated UI for membership edit
* fixed test casses and fixed UI for chat_channel_edit
* 🛠napshots added
* test cases fixed
* 🛠 Test cases added for new component
* channel settings accesible only by mod
* 🛠 More Test cases added
* 🛠 Svg code optimized
* 🛠 Svg code optimized in videocontent
* optimized code for search query
* fix test case for query builder
* changes in joining closed channel logic
* refactored join channel
* redirect to edit channel after joining request
* changes in test case for redirect
* optimized code
* 🛠 Eslint bugs fixed
* test case fixed
* optimization
* olving channel repetition problem
* optimization of code for query builder
* changes in query builder
* test cases fixed
* 🛠 Handling reduntant data on frontend
* 🛠 Don't show data if no filter query
* 🛠 Optimized code for fixing bugs and code coverage
* 🛠 Optimizing code further for CodeClimate
Co-authored-by: Parasgr-code <paras.gaur@skynox.tech>