From 28329ba62f90890b110517f6da69ca81d588f2f5 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 1 Jun 2022 17:31:36 +0200 Subject: Add /api/v1/admin/domain_blocks (#18247) * Add /api/v1/admin/domain_blocks Fixes #18140 - `GET /api/v1/admin/domain_blocks` lists domain blocks - `GET /api/v1/admin/domain_blocks/:id` shows one by ID - `DELETE /api/v1/admin/domain_blocks/:id` deletes a given domain block - `POST /api/v1/admin/domain_blocks` to create a new domain block: if it conflicts with an existing one, returns an error with an attribute `existing_domain_block` with the rendered domain block * Simplify conflict handling as suggested in review --- app/serializers/rest/admin/domain_block_serializer.rb | 11 +++++++++++ .../rest/admin/existing_domain_block_error_serializer.rb | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 app/serializers/rest/admin/domain_block_serializer.rb create mode 100644 app/serializers/rest/admin/existing_domain_block_error_serializer.rb (limited to 'app/serializers/rest/admin') diff --git a/app/serializers/rest/admin/domain_block_serializer.rb b/app/serializers/rest/admin/domain_block_serializer.rb new file mode 100644 index 000000000..b955d008a --- /dev/null +++ b/app/serializers/rest/admin/domain_block_serializer.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class REST::Admin::DomainBlockSerializer < ActiveModel::Serializer + attributes :id, :domain, :created_at, :severity, + :reject_media, :reject_reports, + :private_comment, :public_comment, :obfuscate + + def id + object.id.to_s + end +end diff --git a/app/serializers/rest/admin/existing_domain_block_error_serializer.rb b/app/serializers/rest/admin/existing_domain_block_error_serializer.rb new file mode 100644 index 000000000..629566dad --- /dev/null +++ b/app/serializers/rest/admin/existing_domain_block_error_serializer.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class REST::Admin::ExistingDomainBlockErrorSerializer < ActiveModel::Serializer + attributes :error + + has_one :existing_domain_block, serializer: REST::Admin::DomainBlockSerializer + + def error + I18n.t('admin.domain_blocks.existing_domain_block', name: existing_domain_block.domain) + end + + def existing_domain_block + object + end +end -- cgit