Skip to content

Commit 37e5b68

Browse files
authored
Add active to bridge (#27)
* add active to bridge * added active to strong bridge params * add activate and deactivate methods to bridge controller
1 parent bf0ed5d commit 37e5b68

5 files changed

Lines changed: 36 additions & 6 deletions

File tree

app/controllers/bridges_controller.rb

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
class BridgesController < ApplicationController
44
before_action :authorize_request
5-
before_action :set_bridge, only: %i[show update destroy]
5+
before_action :set_bridge, except: %i[index create]
66

77
def index
88
render_message message: { bridges: @current_user.bridges.all }
@@ -40,11 +40,28 @@ def destroy
4040
render_message
4141
end
4242

43+
def activate
44+
if @bridge.update active: true
45+
render_message
46+
else
47+
render_message status: :bad_request
48+
end
49+
end
50+
51+
def deactivate
52+
if @bridge.update active: false
53+
render_message
54+
else
55+
render_message status: :bad_request
56+
end
57+
end
58+
4359
protected
4460

4561
# rubocop:disable Metrics/MethodLength
4662
def bridge_params
4763
params.require(:bridge).permit(
64+
:active,
4865
:title,
4966
:method,
5067
:retries,
@@ -59,7 +76,11 @@ def bridge_params
5976
# rubocop:enable Metrics/MethodLength
6077

6178
def set_bridge
62-
@bridge = Bridge.includes(:events, :headers, :environment_variables).find_by(id: params[:id], user: @current_user)
79+
@bridge = Bridge.includes(
80+
:events,
81+
:headers,
82+
:environment_variables
83+
).find_by(id: (params[:id] || params[:bridge_id]), user_id: @current_user.id)
6384
render_message status: :unprocessable_entity unless @bridge
6485
end
6586
end

config/routes.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
Rails.application.routes.draw do
44
resource :user, except: %i[new edit]
5-
resources :bridges
5+
resources :bridges do
6+
patch 'activate'
7+
patch 'deactivate'
8+
end
69
resources :headers, :environment_variables, only: :destroy
710

811
post 'login', to: 'sessions#create'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class AddActiveToBridges < ActiveRecord::Migration[6.0]
2+
def change
3+
add_column :bridges, :active, :boolean, default: :true
4+
end
5+
end

db/schema.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#
1111
# It's strongly recommended that you check this file into your version control system.
1212

13-
ActiveRecord::Schema.define(version: 2020_11_12_094842) do
13+
ActiveRecord::Schema.define(version: 2020_11_20_084233) do
1414

1515
# These are extensions that must be enabled in order to support this database
1616
enable_extension "plpgsql"
@@ -26,6 +26,7 @@
2626
t.datetime "created_at", precision: 6, null: false
2727
t.datetime "updated_at", precision: 6, null: false
2828
t.bigint "user_id", null: false
29+
t.boolean "active", default: true
2930
t.index ["inbound_url"], name: "index_bridges_on_inbound_url", unique: true
3031
t.index ["user_id"], name: "index_bridges_on_user_id"
3132
end

db/seeds.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def test_url
1212
method: 'POST',
1313
retries: 5,
1414
delay: 15,
15-
data: { payload: {}, test_payload: {} }
15+
data: { payload: '{}', test_payload: '{}' }
1616
)
1717

1818
bridge.environment_variables << EnvironmentVariable.create(key: 'database', value: 'a102345ij2')
@@ -27,7 +27,7 @@ def test_url
2727
method: 'PATCH',
2828
retries: 0,
2929
delay: 0,
30-
data: { payload: {}, test_payload: {} }
30+
data: { payload: '{}', test_payload: '{}' }
3131
)
3232

3333
bridge2.environment_variables << EnvironmentVariable.create(key: 'database', value: 'z9992374623')

0 commit comments

Comments
 (0)