* Twitch Webhook Registration Fix
This fixes the broken twitch webhook registration. I previously added
the `to_json` when I was switching to using HTTParty and working through
WebMock. I apparently forgot to test this manually however after and
relied on the specs that had some baked in bad assumptions.
This removes the `to_json` and configures the mocking properly in the
spec setup.
I tested locally that this can now succesfully register for webhooks
with Twitch!
* Fix Webhook verification digesting as well, hardcode the specs for durability
* Refactor to use shorter digest method
* Add cache buster lines from Bens branch
* Allow users to follow podcasts
* Only display podcasts user follows
* Add main_color_hex to factory
* Fix podcast test and modify styles
* Fix tests
* Remove weird test
* Change format of user preferred languages
* Make sure user language settings are set by default
* Add missing expect to the user spec
* Fix users/misc template
* Move existing languages to a constant
* Remove commented user code
* Move languages out of User model
* Update preferred languages accordingly to the available languages
* Set user estimated language only if the language is available
* Fix Portuguese spelling #2582
* Get a job created that can create a webhook subscription for a twitch user login
* Remove ngork url
* Refactor add store the access token in the cache
* Get a controller stood up to recieve the webhooks. Now they just need to be processed
* Get User columns added and got webhook controller bones working
* Update the webhook job to use the User
* Add a way for the User to input their Twitch User Name. Plus a linter fix
* Delay webhook registration when profile is updated
* Don't add _ in username
* Use String columns
* Quick fix and add some more requests specs
* Specs for the webhook job
* Get a show page Twitch Live Streams. Just a straight embed of the Twitch Everything Embed UI. Works surprisingly well responsively, and works on all screen sizes
* Fix Gemfile.lock from merge issues
* Add support for expired tokens and add spec
* Add secrets to webhook registration and clean up spec to remove token logic
* Verify webhook secret and spec it
* Add rake task to enqueue webhook registration for all Users. This can be used from Heroku Scheduler
* Update the lease seconds to be for 5 days
* Actually lets do 7 so we can refresh twice a week and try to make sure that we can always miss one
* Hijack the existing Twitch logo instead of making a duplicate one
* Remove comment and replace with log line
* Remove some white space
* Log to Airbrake when webhook errors occur
* Move to passing in an id instead of User object
* Extract logic from Job to Service object
* Capitilize in the view
* Move out of models and into services
* Remove letover stub
* Remove one usage of Faraday
* Use HTTParty for all the HTTP here
* Initial classified listings work
* More work on tags
* Additional work finalizing stripe and getting the listings page along
* Finalize-ish listings 🤞
* Remove deprecated analytics role
* Make anchor tag a bit more readable
* Add OrganizationMembership table and model
* Add organization_membership associations
* Add unique indices for user_id and org_id
* Wrap update and create calls in transactions
* Remove specs of deprecated analytics_beta_tester
* Move estimating user language logic to a service object
* Call a service from a User#estimate_default_language!
* ActiveJob for estimating default user language
* Call ActiveJob from the User#estimate_default_language
* Handle nil user email when estimating default language
* Switch user.estimate_default_language_without_delay! to estimate_default_language! in specs
* Use published scope for articles
* Fix variable name
* The sequencing in the union query matters
* Fix spec
* Restore a published: true condition
* This test is actually misleading due to the union
* Revert this change, not sure why it's not a relation
* Fix useless diff
* add moderation email list columns
* automate tag moderator mailing list
* reorder logic for tag mod list
* add community mod list
* remove trusted privileges when reverting a user to a regular member
* automatically make tag mods community mods
* fix merge conflicts
* add community view
* make methods less complex based on code climate sugggestion
* add specs
* refactor tag moderator module
* fix spec
* Set users email to nil instead of blank
* Remove uniqueness validation duplication for users
* Fix organization following test in case the name contains quotes
* Add tech support role
* Add tech support permission method
* Enabled /delayed_job for tech support users
* Fix typo oops
* Add tests for tech support viewing /delayed_job
* Fix typo again...
* Rename tech role to tech admin
* Set github and twitter usernames to nil if they are blank
* Verify github and twitter username in the Admin::UsersController (just in case)
* Add unique indexs on users twitter_username and github_username
* remove pro privelges from other roles and add trusted role for pros
* add merge user routes and methods
* add specs
* add more specs
* update languauge on /internal for clarity
* fix code climate error
* Remove harsh video restriction and add video duration
* Fix video meta data and tests
* Modify video tests
* Rescue video duration fetch error
* Change log to puts in test
* allow admins to see dashboards
* add more info to internal users
* add more info to internal users
* add video permission toggle
* specify banished user traits
Fixes all the notification request specs that were xited. This should help us feel more comfortable making changes to notifications.
Also made a small (performance?) improvement by using an already defined variable.
* Add ApiSecret model scaffold
* Add relationships between ApiSecret, User, Organization
* Add placeholder template to account tab
* Add description column to ApiSecrets
* Add very basic access token generation
* Add basic access token deletion
* Show access token on success flash
* Add placeholder message when user has no secrets
* Use cta style on token generation button
* Add presence validation for ApiSecret description
* Add ApiSecrets factory
* Add pundit policy for ApiSecret
* Nest form field within api_secret hash to allow rails strong params
* Use pundit to authorize ApiSecretController actions
* Add error message flash for ApiSecretsController actions
* Add specs for ApiSecretsController
* Add length validation to api secret description
* Flash model error instead of generic message on save failure
* Truncate ApiSecret factory objects descriptions to prevent validation error
* Remove length restriction on ApiSecret.description
* Use darker font color for token creation date
* Consolidate ApiSecret migrations
* Validate for trailing slash instead of strict validation
* Remove unused sign_in_count field
* Add profile URLs to edit view
* Add profile URLs to admin controller params
* Add profile URLs to edit view
* Clean up index and search views for user
* Move around user fields to make more sense
* Display more informative label
* Remove name_of_user field in favor of new display label
* Fix typo
* Remove duplication for website, employer, and Mastodon URLs
* Add score to comment params
* Remove unused name_of_user field views
* Fix typo for medium url