From 16b242fa0f669666640a08db4bac4b7e0c8e52bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonne=20Ha=C3=9F?= Date: Tue, 21 Jan 2020 10:04:35 +0100 Subject: [PATCH] Drop chat_enabled from aspects API --- app/controllers/api/v1/aspects_controller.rb | 6 +-- app/presenters/aspect_presenter.rb | 1 - lib/schemas/api_v1.json | 5 +-- .../api/aspects_controller_spec.rb | 40 +++---------------- spec/presenters/aspect_presenter_spec.rb | 1 - 5 files changed, 10 insertions(+), 43 deletions(-) diff --git a/app/controllers/api/v1/aspects_controller.rb b/app/controllers/api/v1/aspects_controller.rb index a604c5eb4..d18263847 100644 --- a/app/controllers/api/v1/aspects_controller.rb +++ b/app/controllers/api/v1/aspects_controller.rb @@ -28,8 +28,8 @@ module Api end def create - params.require(%i[name chat_enabled]) - aspect = current_user.aspects.build(name: params[:name], chat_enabled: params[:chat_enabled]) + params.require(%i[name]) + aspect = current_user.aspects.build(name: params[:name]) if aspect&.save render json: aspect_as_json(aspect, true) else @@ -65,7 +65,7 @@ module Api private def aspect_params(allow_order=false) - parameters = params.permit(:name, :chat_enabled) + parameters = params.permit(:name) parameters[:order_id] = params[:order] if params.has_key?(:order) && allow_order parameters diff --git a/app/presenters/aspect_presenter.rb b/app/presenters/aspect_presenter.rb index facf4d398..48679fe8d 100644 --- a/app/presenters/aspect_presenter.rb +++ b/app/presenters/aspect_presenter.rb @@ -17,7 +17,6 @@ class AspectPresenter < BasePresenter name: @aspect.name } values[:order] = @aspect.order_id if with_order - values[:chat_enabled] = @aspect.chat_enabled if full values end diff --git a/lib/schemas/api_v1.json b/lib/schemas/api_v1.json index 40b29d6a8..30006d6ef 100644 --- a/lib/schemas/api_v1.json +++ b/lib/schemas/api_v1.json @@ -81,12 +81,9 @@ }, "order": { "type": "integer" - }, - "chat_enabled": { - "type": "boolean" } }, - "required": ["id", "name", "order", "chat_enabled"], + "required": ["id", "name", "order"], "additionalProperties": false }, diff --git a/spec/integration/api/aspects_controller_spec.rb b/spec/integration/api/aspects_controller_spec.rb index c255f7a76..e96125efb 100644 --- a/spec/integration/api/aspects_controller_spec.rb +++ b/spec/integration/api/aspects_controller_spec.rb @@ -80,7 +80,6 @@ describe Api::V1::AspectsController do expect(aspect["id"]).to eq(@aspect2.id) expect(aspect["name"]).to eq(@aspect2.name) expect(aspect["order"]).to eq(@aspect2.order_id) - expect(aspect["chat_enabled"]).to eq(@aspect2.chat_enabled) expect(aspect.to_json).to match_json_schema(:api_v1_schema) end @@ -122,13 +121,12 @@ describe Api::V1::AspectsController do new_name = "diaspora developers" post( api_v1_aspects_path, - params: {name: new_name, chat_enabled: true, access_token: access_token} + params: {name: new_name, access_token: access_token} ) expect(response.status).to eq(200) aspect = JSON.parse(response.body) expect(aspect["name"]).to eq(new_name) - expect(aspect["chat_enabled"]).to be_truthy expect(aspect.has_key?("id")).to be_truthy expect(aspect.has_key?("order")).to be_truthy end @@ -136,7 +134,7 @@ describe Api::V1::AspectsController do it "fails to create duplicate aspect" do post( api_v1_aspects_path, - params: {name: @aspect1.name, chat_enabled: true, access_token: access_token} + params: {name: @aspect1.name, access_token: access_token} ) expect(response.status).to eq(422) @@ -148,17 +146,7 @@ describe Api::V1::AspectsController do it "fails when missing name" do post( api_v1_aspects_path, - params: {chat_enabled: true, access_token: access_token} - ) - - expect(response.status).to eq(422) - expect(response.body).to eq(I18n.t("api.endpoint_errors.aspects.cant_create")) - end - - it "fails when missing chat" do - post( - api_v1_aspects_path, - params: {name: "new_aspect", access_token: access_token} + params: {order: 0, access_token: access_token} ) expect(response.status).to eq(422) @@ -170,7 +158,7 @@ describe Api::V1::AspectsController do it "fails when not logged in" do post( api_v1_aspects_path, - params: {name: "new_name", chat_enabled: true, access_token: invalid_token} + params: {name: "new_name", access_token: invalid_token} ) expect(response.status).to eq(401) end @@ -178,7 +166,7 @@ describe Api::V1::AspectsController do it "fails when logged in read only" do post( api_v1_aspects_path, - params: {name: "new_name", chat_enabled: true, access_token: access_token_read_only} + params: {name: "new_name", access_token: access_token_read_only} ) expect(response.status).to eq(403) @@ -190,17 +178,15 @@ describe Api::V1::AspectsController do context "with aspect settings" do it "updates full aspect" do new_name = "NewAspectName" - new_chat = @aspect2.chat_enabled new_order = @aspect2.order_id + 1 patch( api_v1_aspect_path(@aspect2.id), - params: {name: new_name, chat_enabled: new_chat, order: new_order, access_token: access_token} + params: {name: new_name, order: new_order, access_token: access_token} ) expect(response.status).to eq(200) aspect = JSON.parse(response.body) expect(aspect["name"]).to eq(new_name) - expect(aspect["chat_enabled"]).to eq(new_chat) expect(aspect["order"]).to eq(new_order) expect(aspect["id"]).to eq(@aspect2.id) end @@ -218,19 +204,6 @@ describe Api::V1::AspectsController do expect(aspect["id"]).to eq(@aspect2.id) end - it "updates chat only" do - new_chat = @aspect2.chat_enabled - patch( - api_v1_aspect_path(@aspect2.id), - params: {chat_enabled: new_chat, access_token: access_token} - ) - - expect(response.status).to eq(200) - aspect = JSON.parse(response.body) - expect(aspect["chat_enabled"]).to eq(new_chat) - expect(aspect["id"]).to eq(@aspect2.id) - end - it "updates order only" do new_order = @aspect2.order_id + 1 patch( @@ -253,7 +226,6 @@ describe Api::V1::AspectsController do expect(response.status).to eq(200) aspect = JSON.parse(response.body) expect(aspect["name"]).to eq(@aspect2.name) - expect(aspect["chat_enabled"]).to eq(@aspect2.chat_enabled) expect(aspect["id"]).to eq(@aspect2.id) end end diff --git a/spec/presenters/aspect_presenter_spec.rb b/spec/presenters/aspect_presenter_spec.rb index 5c332d054..b324c87dd 100644 --- a/spec/presenters/aspect_presenter_spec.rb +++ b/spec/presenters/aspect_presenter_spec.rb @@ -25,7 +25,6 @@ describe AspectPresenter do expect(aspect_json[:id]).to eq(@aspect.id) expect(aspect_json[:name]).to eq(@aspect.name) expect(aspect_json[:order]).to eq(@aspect.order_id) - expect(aspect_json[:chat_enabled]).to eq(@aspect.chat_enabled) end end end