From 8f5cf7cf7329dc59313893bd49b9abcfb54af37d Mon Sep 17 00:00:00 2001 From: Angel Ruiz-Bates Date: Fri, 20 Nov 2020 01:47:31 -0700 Subject: [PATCH 1/3] add active to bridge --- db/migrate/20201120084233_add_active_to_bridges.rb | 5 +++++ db/schema.rb | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20201120084233_add_active_to_bridges.rb diff --git a/db/migrate/20201120084233_add_active_to_bridges.rb b/db/migrate/20201120084233_add_active_to_bridges.rb new file mode 100644 index 0000000..f5c3d9d --- /dev/null +++ b/db/migrate/20201120084233_add_active_to_bridges.rb @@ -0,0 +1,5 @@ +class AddActiveToBridges < ActiveRecord::Migration[6.0] + def change + add_column :bridges, :active, :boolean, default: :true + end +end diff --git a/db/schema.rb b/db/schema.rb index 7ee69a3..2d049a0 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_11_12_094842) do +ActiveRecord::Schema.define(version: 2020_11_20_084233) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -26,6 +26,7 @@ t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.bigint "user_id", null: false + t.boolean "active", default: true t.index ["inbound_url"], name: "index_bridges_on_inbound_url", unique: true t.index ["user_id"], name: "index_bridges_on_user_id" end From d88e88e5f1db1f42b3d5a52822383394cc5f4c31 Mon Sep 17 00:00:00 2001 From: Angel Ruiz-Bates Date: Fri, 20 Nov 2020 11:43:50 -0700 Subject: [PATCH 2/3] added active to strong bridge params --- app/controllers/bridges_controller.rb | 1 + db/seeds.rb | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/bridges_controller.rb b/app/controllers/bridges_controller.rb index e07564d..c535a25 100644 --- a/app/controllers/bridges_controller.rb +++ b/app/controllers/bridges_controller.rb @@ -45,6 +45,7 @@ def destroy # rubocop:disable Metrics/MethodLength def bridge_params params.require(:bridge).permit( + :active, :title, :method, :retries, diff --git a/db/seeds.rb b/db/seeds.rb index bc30a3e..82842e1 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -12,7 +12,7 @@ def test_url method: 'POST', retries: 5, delay: 15, - data: { payload: {}, test_payload: {} } + data: { payload: '{}', test_payload: '{}' } ) bridge.environment_variables << EnvironmentVariable.create(key: 'database', value: 'a102345ij2') @@ -27,7 +27,7 @@ def test_url method: 'PATCH', retries: 0, delay: 0, - data: { payload: {}, test_payload: {} } + data: { payload: '{}', test_payload: '{}' } ) bridge2.environment_variables << EnvironmentVariable.create(key: 'database', value: 'z9992374623') From 485895e04151bc3465b48c985b1429a0780061b2 Mon Sep 17 00:00:00 2001 From: Angel Ruiz-Bates Date: Fri, 20 Nov 2020 18:38:00 -0700 Subject: [PATCH 3/3] add activate and deactivate methods to bridge controller --- app/controllers/bridges_controller.rb | 24 ++++++++++++++++++++++-- config/routes.rb | 5 ++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/controllers/bridges_controller.rb b/app/controllers/bridges_controller.rb index c535a25..d540f13 100644 --- a/app/controllers/bridges_controller.rb +++ b/app/controllers/bridges_controller.rb @@ -2,7 +2,7 @@ class BridgesController < ApplicationController before_action :authorize_request - before_action :set_bridge, only: %i[show update destroy] + before_action :set_bridge, except: %i[index create] def index render_message message: { bridges: @current_user.bridges.all } @@ -40,6 +40,22 @@ def destroy render_message end + def activate + if @bridge.update active: true + render_message + else + render_message status: :bad_request + end + end + + def deactivate + if @bridge.update active: false + render_message + else + render_message status: :bad_request + end + end + protected # rubocop:disable Metrics/MethodLength @@ -60,7 +76,11 @@ def bridge_params # rubocop:enable Metrics/MethodLength def set_bridge - @bridge = Bridge.includes(:events, :headers, :environment_variables).find_by(id: params[:id], user: @current_user) + @bridge = Bridge.includes( + :events, + :headers, + :environment_variables + ).find_by(id: (params[:id] || params[:bridge_id]), user_id: @current_user.id) render_message status: :unprocessable_entity unless @bridge end end diff --git a/config/routes.rb b/config/routes.rb index 3982662..c198c71 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,7 +2,10 @@ Rails.application.routes.draw do resource :user, except: %i[new edit] - resources :bridges + resources :bridges do + patch 'activate' + patch 'deactivate' + end resources :headers, :environment_variables, only: :destroy post 'login', to: 'sessions#create'