diff --git a/Gemfile b/Gemfile index 321e3cb19..e258fce8a 100644 --- a/Gemfile +++ b/Gemfile @@ -38,7 +38,6 @@ gem "email_validator", "~> 2.0" # Email validator for Rails and ActiveModel gem "emoji_regex", "~> 3.0" # A pair of Ruby regular expressions for matching Unicode Emoji symbols gem "envied", "~> 0.9" # Ensure presence and type of your app's ENV-variables gem "faraday-http-cache", "~> 2.2" # Middleware to handle HTTP caching -gem "fast_jsonapi", "~> 1.5" # Serializer for Ruby objects gem "fastly", "~> 2.5" # Client library for the Fastly acceleration system gem "feedjira", "~> 3.1" # A feed fetching and parsing library gem "field_test", "~> 0.4" # A/B testing @@ -58,6 +57,7 @@ gem "httparty", "~> 0.18" # Makes http fun! Also, makes consuming restful web se gem "inline_svg", "~> 1.7" # Embed SVG documents in your Rails views and style them with CSS gem "jbuilder", "~> 2.10" # Create JSON structures via a Builder-style DSL gem "jquery-rails", "~> 4.4" # A gem to automate using jQuery with Rails +gem "jsonapi-serializer", "~> 2.0" # Serializer for Ruby objects gem "kaminari", "~> 1.2" # A Scope & Engine based, clean, powerful, customizable and sophisticated paginator gem "katex", "~> 0.6.0" # This rubygem enables you to render TeX math to HTML using KaTeX. It uses ExecJS under the hood gem "liquid", "~> 4.0" # A secure, non-evaling end user template engine with aesthetic markup diff --git a/Gemfile.lock b/Gemfile.lock index c6c328c12..9e703a5d3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -298,8 +298,6 @@ GEM faraday (>= 0.8) faraday_middleware (1.0.0) faraday (~> 1.0) - fast_jsonapi (1.5) - activesupport (>= 4.2) fastimage (2.1.1) fastly (2.5.3) feedjira (3.1.1) @@ -423,6 +421,8 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (2.3.0) + jsonapi-serializer (2.0.0) + activesupport (>= 4.2) jwt (2.2.1) kaminari (1.2.1) activesupport (>= 4.1.0) @@ -885,7 +885,6 @@ DEPENDENCIES factory_bot_rails (~> 6.1) faker (~> 2.13) faraday-http-cache (~> 2.2) - fast_jsonapi (~> 1.5) fastly (~> 2.5) feedjira (~> 3.1) field_test (~> 0.4) @@ -910,6 +909,7 @@ DEPENDENCIES inline_svg (~> 1.7) jbuilder (~> 2.10) jquery-rails (~> 4.4) + jsonapi-serializer (~> 2.0) kaminari (~> 1.2) katex (~> 0.6.0) knapsack_pro (~> 2.1.1) diff --git a/app/serializers/application_serializer.rb b/app/serializers/application_serializer.rb new file mode 100644 index 000000000..91b2ab6b0 --- /dev/null +++ b/app/serializers/application_serializer.rb @@ -0,0 +1,3 @@ +class ApplicationSerializer + include JSONAPI::Serializer +end diff --git a/app/serializers/search/article_serializer.rb b/app/serializers/search/article_serializer.rb index 377762fd5..54b3431a0 100644 --- a/app/serializers/search/article_serializer.rb +++ b/app/serializers/search/article_serializer.rb @@ -1,7 +1,5 @@ module Search - class ArticleSerializer - include FastJsonapi::ObjectSerializer - + class ArticleSerializer < ApplicationSerializer attribute :id, &:search_id attributes :approved, :body_text, :class_name, :cloudinary_video_url, diff --git a/app/serializers/search/chat_channel_membership_serializer.rb b/app/serializers/search/chat_channel_membership_serializer.rb index 53ecd3492..9cd13db84 100644 --- a/app/serializers/search/chat_channel_membership_serializer.rb +++ b/app/serializers/search/chat_channel_membership_serializer.rb @@ -1,7 +1,5 @@ module Search - class ChatChannelMembershipSerializer - include FastJsonapi::ObjectSerializer - + class ChatChannelMembershipSerializer < ApplicationSerializer attributes :id, :status, :viewable_by, :chat_channel_id, :last_opened_at, :channel_text, :channel_last_message_at, :channel_status, :channel_status, :channel_type, :channel_username, :channel_name, diff --git a/app/serializers/search/comment_serializer.rb b/app/serializers/search/comment_serializer.rb index 944fe9be2..ca1fa14f3 100644 --- a/app/serializers/search/comment_serializer.rb +++ b/app/serializers/search/comment_serializer.rb @@ -1,7 +1,5 @@ module Search - class CommentSerializer - include FastJsonapi::ObjectSerializer - + class CommentSerializer < ApplicationSerializer attribute :id, &:search_id attributes :path, :public_reactions_count diff --git a/app/serializers/search/listing_author_serializer.rb b/app/serializers/search/listing_author_serializer.rb index 7f076d9fd..4e0cda39b 100644 --- a/app/serializers/search/listing_author_serializer.rb +++ b/app/serializers/search/listing_author_serializer.rb @@ -1,7 +1,5 @@ module Search - class ListingAuthorSerializer - include FastJsonapi::ObjectSerializer - + class ListingAuthorSerializer < ApplicationSerializer attributes :username, :name, :profile_image_90 end end diff --git a/app/serializers/search/listing_serializer.rb b/app/serializers/search/listing_serializer.rb index c8f3805c5..327ef39de 100644 --- a/app/serializers/search/listing_serializer.rb +++ b/app/serializers/search/listing_serializer.rb @@ -1,7 +1,5 @@ module Search - class ListingSerializer - include FastJsonapi::ObjectSerializer - + class ListingSerializer < ApplicationSerializer attributes :id, :body_markdown, :bumped_at, diff --git a/app/serializers/search/nested_user_serializer.rb b/app/serializers/search/nested_user_serializer.rb index 67898b9a2..b62e45e06 100644 --- a/app/serializers/search/nested_user_serializer.rb +++ b/app/serializers/search/nested_user_serializer.rb @@ -1,7 +1,5 @@ module Search - class NestedUserSerializer - include FastJsonapi::ObjectSerializer - + class NestedUserSerializer < ApplicationSerializer attributes :id, :name, :pro, :profile_image_90, :username end end diff --git a/app/serializers/search/podcast_episode_serializer.rb b/app/serializers/search/podcast_episode_serializer.rb index c32a945ec..3b55a9e18 100644 --- a/app/serializers/search/podcast_episode_serializer.rb +++ b/app/serializers/search/podcast_episode_serializer.rb @@ -1,7 +1,5 @@ module Search - class PodcastEpisodeSerializer - include FastJsonapi::ObjectSerializer - + class PodcastEpisodeSerializer < ApplicationSerializer attribute :id, &:search_id attributes :body_text, :class_name, :comments_count, :hotness_score, :path, diff --git a/app/serializers/search/reaction_serializer.rb b/app/serializers/search/reaction_serializer.rb index 5e06b7676..a0c6ee115 100644 --- a/app/serializers/search/reaction_serializer.rb +++ b/app/serializers/search/reaction_serializer.rb @@ -1,7 +1,5 @@ module Search - class ReactionSerializer - include FastJsonapi::ObjectSerializer - + class ReactionSerializer < ApplicationSerializer attributes :id, :category, :status, :user_id attribute :reactable do |reaction| diff --git a/app/serializers/search/tag_serializer.rb b/app/serializers/search/tag_serializer.rb index ce3f77190..ea87f90d0 100644 --- a/app/serializers/search/tag_serializer.rb +++ b/app/serializers/search/tag_serializer.rb @@ -1,7 +1,5 @@ module Search - class TagSerializer - include FastJsonapi::ObjectSerializer - + class TagSerializer < ApplicationSerializer attributes :id, :name, :hotness_score, :supported, :short_summary, :rules_html end end diff --git a/app/serializers/search/user_serializer.rb b/app/serializers/search/user_serializer.rb index 84391e996..3a22d02fd 100644 --- a/app/serializers/search/user_serializer.rb +++ b/app/serializers/search/user_serializer.rb @@ -1,7 +1,5 @@ module Search - class UserSerializer - include FastJsonapi::ObjectSerializer - + class UserSerializer < ApplicationSerializer attributes :id, :available_for, :comments_count, diff --git a/app/serializers/webhook/article_destroyed_serializer.rb b/app/serializers/webhook/article_destroyed_serializer.rb index 509627c03..785180093 100644 --- a/app/serializers/webhook/article_destroyed_serializer.rb +++ b/app/serializers/webhook/article_destroyed_serializer.rb @@ -1,6 +1,5 @@ module Webhook - class ArticleDestroyedSerializer - include FastJsonapi::ObjectSerializer + class ArticleDestroyedSerializer < ApplicationSerializer set_type :article attributes :title end diff --git a/app/serializers/webhook/article_serializer.rb b/app/serializers/webhook/article_serializer.rb index 6f9d7ad8a..13fd9ed35 100644 --- a/app/serializers/webhook/article_serializer.rb +++ b/app/serializers/webhook/article_serializer.rb @@ -1,7 +1,5 @@ module Webhook - class ArticleSerializer - include FastJsonapi::ObjectSerializer - + class ArticleSerializer < ApplicationSerializer set_type :article attributes :title, :description, :readable_publish_date, :cached_tag_list, :cached_tag_list_array, :slug, :path, :url, :comments_count, :public_reactions_count, :body_markdown diff --git a/app/serializers/webhook/event_serializer.rb b/app/serializers/webhook/event_serializer.rb index ea0995d13..528e98e5c 100644 --- a/app/serializers/webhook/event_serializer.rb +++ b/app/serializers/webhook/event_serializer.rb @@ -1,7 +1,5 @@ module Webhook - class EventSerializer - include FastJsonapi::ObjectSerializer - + class EventSerializer < ApplicationSerializer set_type :webhook_event set_id :event_id diff --git a/app/serializers/webhook/user_serializer.rb b/app/serializers/webhook/user_serializer.rb index c2359750c..ad0167309 100644 --- a/app/serializers/webhook/user_serializer.rb +++ b/app/serializers/webhook/user_serializer.rb @@ -1,7 +1,5 @@ module Webhook - class UserSerializer - include FastJsonapi::ObjectSerializer - + class UserSerializer < ApplicationSerializer attributes :name, :username, :twitter_username, :github_username attribute :website_url, &:processed_website_url attribute :profile_image do |user| diff --git a/vendor/cache/fast_jsonapi-1.5.gem b/vendor/cache/fast_jsonapi-1.5.gem deleted file mode 100644 index 56fcb6eb2..000000000 Binary files a/vendor/cache/fast_jsonapi-1.5.gem and /dev/null differ diff --git a/vendor/cache/jsonapi-serializer-2.0.0.gem b/vendor/cache/jsonapi-serializer-2.0.0.gem new file mode 100644 index 000000000..70fc3c14f Binary files /dev/null and b/vendor/cache/jsonapi-serializer-2.0.0.gem differ