* Add API endpoints for analytics
* Remove comment and spacing
* Use proper time formatting
* Refactor and clean up some logic
* Add pro and org member traits
* Use shared examples for analytics API spec
* Add analytics authorization specs
* Remove accidental include Pundit
* Raise not_authorized for invalid requests
* Make attributes and time methods private
* Add custom UnauthorizedError
* Raise and use rescue_from to handle 4xx requests
* Enforce date parameters to follow a specific format
* Use current user to allow same origin requests
* Use custom headers and not params for token auth
* Default to current user for same origin requests
* Use correct boolean for choosing user
* Update tests to use request headers and add stricter tests
* Add HtmlCssToImage for generating images
This will be used by social_previews to convert the templates into images.
Setup a fallback image primarily for local dev, so that this won't cause
errors if authentication is missing.
Caching is setup to use contents of the html/css. So it with
autobust/generate a new image whenever the markup changes.
* Update Article social preview template to not be random
+ Being random breaks caching (since we generate cachekey by a SHA of html content)
+ Use Roboto for when generating via HTML/CSS to Image
* Update Tag social preview template to not be random
+ Make rand deterministic so it doesn't break caching
* Update user social preview template for html/csstoimage
* Update shecoded template to work with both url2png and htmlcsstoimage
* Add ability to respond to .png for social previews controller
When adding .png to the url, these routes will now generate an image and
redirect to it.
This leaves the existing pages as they were, so we're backwards
compatible with all the existing links out in the world.
* Fix merge conflicts
* Remove some duplication
* Improve spec descriptions/read better
* clean up setting template with a ternary
* Add spec for org reaction notification
* Add organization_id to notifications
* Add validations for user and org IDs
* Move comment json_data out of loop
* Use actual column names instead
* Add organization filters
* Remove extra text-align
* Add organization filtering
* Refactor to reduce complexity
* Add receiver argument to handle orgs
* Add has_many notifications for orgs
* Add follow notifications for orgs
* Add comment notifications for orgs
* Rename some tests for specificity
* Add mark org notifications as read functionality
* Add radix to parseInt
* Define json_data outside of loop
* Notify org followers of a new post as well
* Move test to proper location
* Add test for aggregated method
* Make send org reaction notification more readable
* Test the rest of the notification model
* Refactor tag adjustment spec
* Fix extra html
* Use name attribute
* Export comments
* Update copy
* Fix time-dependent test
* Remove reactions_count from the export
* Only select needed attributes from the DB
* Add the path of the commentable to the export
Comments are attached to something but from the export that is not easily identifiable. We add the "commentable_path" to give some context.
* add comment template
* merge upstream
* Initial work
* make sure the template re-appears for top level comments after submission
* Small fix
* Fix git issues
* Account for missing reading times
* Add minimal score on sidebar
* Test for page to include min read
* rubocop cleanup
* Mess with test
* Add .to_i after score
* Modify search_score var
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.
* Close anchor tag typo
* Remove confusing message in profile
* Fix typo in spec
* Add old_slug and old_old_slug fields to org
* Test for check_for_slug_change method
* Add ability for orgs to change slug
* Update copy to match new org language
* Add redirect for organizations with old slugs
* Use less queries for handling org/user redirect
* Use consistent syntax for user creation
* Test for organization slug redirects
* Refactor user article redirect
* 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