diff --git a/app/controllers/pixiv_ugoira_frame_data_controller.rb b/app/controllers/pixiv_ugoira_frame_data_controller.rb new file mode 100644 index 000000000..5db3ea8b4 --- /dev/null +++ b/app/controllers/pixiv_ugoira_frame_data_controller.rb @@ -0,0 +1,8 @@ +class PixivUgoiraFrameDataController < ApplicationController + respond_to :json, :xml + + def index + @pixiv_ugoira_frame_data = PixivUgoiraFrameData.paginated_search(params) + respond_with(@pixiv_ugoira_frame_data) + end +end diff --git a/app/models/pixiv_ugoira_frame_data.rb b/app/models/pixiv_ugoira_frame_data.rb index f6bf07b56..2bfe5af3d 100644 --- a/app/models/pixiv_ugoira_frame_data.rb +++ b/app/models/pixiv_ugoira_frame_data.rb @@ -1,7 +1,19 @@ class PixivUgoiraFrameData < ApplicationRecord + belongs_to :post + serialize :data before_validation :normalize_data, on: :create + def self.available_includes + [:post] + end + + def self.search(params) + q = super + q = q.search_attributes(params, :post, :data, :content_type) + q.apply_default_order(params) + end + def normalize_data return if data.nil? diff --git a/config/routes.rb b/config/routes.rb index e07575d1b..6225e3be5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -161,6 +161,7 @@ Rails.application.routes.draw do end resources :note_versions, :only => [:index, :show] resource :note_previews, :only => [:show] + resources :pixiv_ugoira_frame_data, only: [:index] resources :pools do member do put :revert