diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-07-09 07:05:29 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-07-09 07:13:59 +0200 |
commit | d392020da6ff4511a2925b327de23933f374bea3 (patch) | |
tree | e86a590276a96ef72d5ed49f79998e7680969cb6 /app/controllers/api/v1/filters_controller.rb | |
parent | c699b2d141d7aa910bd81ae5fe881ecec7039395 (diff) | |
parent | 1ca4e51eb38de6de81cedf3ddcdaa626f1d1c569 (diff) |
Merge branch 'master' into glitch-soc/tentative-merge
Conflicts: README.md app/controllers/statuses_controller.rb app/lib/feed_manager.rb config/navigation.rb spec/lib/feed_manager_spec.rb Conflicts were resolved by taking both versions for each change. This means the two filter systems (glitch-soc's keyword mutes and tootsuite's custom filters) are in place, which will be changed in a follow-up commit.
Diffstat (limited to 'app/controllers/api/v1/filters_controller.rb')
-rw-r--r-- | app/controllers/api/v1/filters_controller.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/app/controllers/api/v1/filters_controller.rb b/app/controllers/api/v1/filters_controller.rb new file mode 100644 index 000000000..e5ebaff4d --- /dev/null +++ b/app/controllers/api/v1/filters_controller.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +class Api::V1::FiltersController < Api::BaseController + before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] + before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] + before_action :require_user! + before_action :set_filters, only: :index + before_action :set_filter, only: [:show, :update, :destroy] + + respond_to :json + + def index + render json: @filters, each_serializer: REST::FilterSerializer + end + + def create + @filter = current_account.custom_filters.create!(resource_params) + render json: @filter, serializer: REST::FilterSerializer + end + + def show + render json: @filter, serializer: REST::FilterSerializer + end + + def update + @filter.update!(resource_params) + render json: @filter, serializer: REST::FilterSerializer + end + + def destroy + @filter.destroy! + render_empty + end + + private + + def set_filters + @filters = current_account.custom_filters + end + + def set_filter + @filter = current_account.custom_filters.find(params[:id]) + end + + def resource_params + params.permit(:phrase, :expires_in, :irreversible, :whole_word, context: []) + end +end |