* Added association between webhook_endpoints and oauth apps
* Limit webhooks access by oauth_app_id when authorized by doorkeeper
* Use rails route helpers in webhooks api test
* Dispatch an event only when a published article is created
* Skip sending events about drafts updates
* Skip sending events when a draft is destroyed
* Fix article request spec
* Slight refactoring
* Increase efficiency and fix pagination offset issue
Right now we filter recently aggregated notifications at runtime, which worked before when there was no pagination, but now filtering is not a good idea combined with offset pagination because it throws off the calculations.
The filtering should be done in the SQL query before paginating, which is what we've switched to. I added a bunch of scopes to make the code clearer as well.
To avoid nesting tags I've also updated the HTML and the JS logic to insert it in the right place.
* Add explanation for hiding the load more button for new users
* Start with webhooks: table and model
* Start with webhooks api
* Start with webhooks api
* Webhook::Event class and events list
* Remove commented callbacks
* Start with sending events to webhook endpoints
* A couple of tests for Articles::Creator
* Send event to webhook endpoint on article destroy
* Dispatch event on article update
* Dispatch event when an article updated from admin
* Spec for the webhook job
* One more test for the dispatch event job
* Integration-like spec for event dispatching to webhook endpoints when creating an article
* Use Addressable::URI to parse endpoint url
* Add oj as a faster fast_jsonapi backend
* Renamed serializers
* Move article serialization out of a model
* Don't allow to create a webhook event with invalid type
* Add fields for ArticleSerializer
* Fix webhook event job specs
* Specify timeout when dispatching events
* Fix webhook job spec
* Change webhook events queue name
* Change serialized article fields for the dispatchable events
* Include user data when serializing an article for webhook event
* Moved decorating out of Webhook::DispatchEvent, fixed most specs
* Fix route in ArticleSerializer
* Move Article decoration to Webhook::PayloadAdapter
* Refactor image url helpers to avoid including helpers into serializer
* Fix specs
* Default url options for production
* Use offset instead of page and explain things
* Make load more button work
* Add tests for admin view
* Restore the previous logged out behavior
* Modernize initNotifications.js
* Revert "Modernize initNotifications.js"
This reverts commit 4a112b797d7911c4ab63ad0c0a07111b4e7abe25.
* Fix elements presence errors
* Change load-more-button to only appear if 7 or more posts (and some notification copy adjustments)
* Set domain for badge email links
* Add credits + listings info to plain text badge email
* Update environment variable setting
* Use ENV when ApplicationConfig has not been init
* Hide scrollbars
There is no need for scrollbars in the textarea given the scrollbar at the edge of the browser and that `preact-textarea-autosize` used for the textarea already increases the height of the textarea when needed. Getting rid of scrollbars would solve #2939 and #3330
* add documentation
* /api/articles/me defaults to published articles
We want to make it explicit to retrieve unpublished articles, this change defaults `/api/articles/me` to only published articles, also adds `/api/articles/me/published`, `/api/articles/me/unpublished` and `/api/articles/me/all` to make requests more explicit.
* Refactor /me logic into a case switch
* fixes 0 min reading time in reading list by setting the default reading time to 1 min
* Updated PropTypes for article_reading_time & reading_time to number.isRequired. Updated the relevant tests.
* Fix webhook API and add POST /api/webhooks docs
* Document GET /api/webhooks/:id
* Fix DELETE /api/webhooks/{id} and document it
* Add proper 404 specs