* This change abstracts the DatadogStatsClient into a ForemStatsClient.
The purpose of this abstraction is to set the foundation for a subsequent PR that will allow one to use New Relic for recording Forem stats, instead of Datadog, if there is a New Relic configuration found.
This specific change creates an abstraction layer that can be built upon, without changing any actual default behavior. All specs still pass.
* Use delegate instead of explicit methods.
* Delegate instead of explicit methods.
* Fix the error.
* Refactor according to the suggestions in the comments.
* Ooops. Stats work better when all of the code is committed.
* Removing the alias of count to increment since that was done in error.
* feat: add an error column to the data update script
* feat: save the error to the error field
* feat: save the error when the script fails
* feat: show the script error on the data update script page
* chore: pass the error to mark_as_failed instead of having its own function
* refactor: use presence
* test: ensure that we test an error case of a data update script
* chore: rename errorneous to failing
* test: update some specs, working on the others
* chore: update tests now that there are two files
* chore: change error from a string to a text to allow for more char
* Add script to remove feature flag
* Remove :feeds_import feature flag and RssReader and related classes
* Change Feeds::ImportArticlesWorker signature to support Sidekiq Cron serialization
* Replace RssReader::Assembler with Feeds::AssembleArticleMarkdown
* Removing Assembler
* Add earlier_than to Feeds::Import
* Ignore feeds that have been imported in the last 4 hours
* Make earlier_than mandatory in Feeds::ImportArticlesWorker
* Display gdpr delete requests for deleted users in admin
* Added a test for destroy a gdpr request
* Reorganized gdpr requests menu
* Update schema version
* Added a link to the flash notice after user delete by admin
* Fix namespace for tests
* Aligh schema.rb with master
* Added a missing newline
* Removed unused partial
* Fix typo
Co-authored-by: Michael Kohl <me@citizen428.net>
* Replaced string with symbols for AR
Co-authored-by: Michael Kohl <me@citizen428.net>
* Added an AuditLog record on gdpr delete confirmation
* Make email and user_id required in Users::GdprDeleteRequest
* Checked out package.json from master
* Fix Gdpr => GDPR
* Added missing space
* Remove unneeded freeze
Co-authored-by: Michael Kohl <me@citizen428.net>
* Add explanatory comment to how RssReaderFetchUserWorker works
* Add Feeds::ImportWorker worker
* Enable Feeds::Import for single user feed fetching behind a feature flag
* Add Feeds::ValidateUrl service
* Add feature flag to user's validate feed URL feature
* Remove todo notices
* Add feature flag to fetch_all_rss task
* Add feature flag to RssReaderWorker
* Bring back short-circuit for Articles::RssReaderWorker
* Add the parallel gem
* Add prototype version of Feeds::Import with parallel URL fetching and parsing
* Tune Feeds::Import and add rake task for local tests
* Add rough measurer tool
* Add specs
* Apply suggestions by @citizen428
* Replace silence with silent
* No need for eager loading
* Add temporary Articles::DevFeedsImportWorker
* Remove temporary rake task
* Add basic error handling, copied from RssReader
* Fix error handling
* Remove temporary measuring rake task
* Remove logging added for development purposes
* Add info and error logging on error level
* Update data exporter to handle admin send
* Match button with everything else
* Use proper redirect path
* Stub SiteConfig definition instead of setting it
Co-authored-by: Mac Siri <krairit.siri@gmail.com>
* Removed if statement by accident oops
* Remove non-functional boolean param and pass email directly
* Use refinement to conv to boolean instead of JSON.parse
* Rename to StringToBoolean
* Use 'using' in proper scope (not in method)
* Rename to_bool to to_boolean
* Refactor if statement, thanks rhymes!
* Fix small bugs in tests
* Remove tracking for export_email b/c no @user
Co-authored-by: Mac Siri <krairit.siri@gmail.com>
* Registers the Github AcocuntSuspended & RepositoryUnavailable errors
Adds the above-mentioned errors to the list of known errors raised by
Octokit as to make possible for the rest of the application to
specifically trap those.
* Makes the RepoSyncWorker error handling rely on types
The current implementation attempted to parse the error message to
determine if the error reported by Github's API can/should be handled,
this commit changes the implementation so that the exception type is
used instead.