Class: FaspClient::ProvidersController

Inherits:
ApplicationController show all
Defined in:
app/controllers/fasp_client/providers_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#fasp_client_controller?, #verify_request

Instance Method Details

#createObject



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/controllers/fasp_client/providers_controller.rb', line 8

def create
  attributes = params.deep_transform_keys(&:underscore).expect(provider: [ :name, :base_url, :server_id, :public_key ])
  @provider = Provider.create(attributes)
  if @provider.valid?
    render json: {
      faspId: @provider.uuid,
      publicKey: Base64.strict_encode64(@provider.ed25519_signing_key.verify_key.to_bytes),
      registrationCompletionUri: edit_provider_url(@provider)
    }, status: :created
  else
    head :bad_request
  end
end

#get_providerObject



42
43
44
# File 'app/controllers/fasp_client/providers_controller.rb', line 42

def get_provider
  @provider = Provider.find_by(id: params[:id])
end

#indexObject



22
23
24
# File 'app/controllers/fasp_client/providers_controller.rb', line 22

def index
  @providers = Provider.all
end

#updateObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/fasp_client/providers_controller.rb', line 26

def update
  provider_params = params.expect(provider: [ :status, enable_capability: [ :id, :version ], disable_capability: [ :id, :version ] ])
  head :bad_request and return unless provider_params
  if provider_params[:enable_capability]
    success = @provider.enable(provider_params[:enable_capability][:id], provider_params[:enable_capability][:version])
    redirect_back_or_to edit_provider_path(@provider), notice: success ? "Enabled" : "Failed"
  elsif provider_params[:disable_capability]
    success = @provider.disable(provider_params[:disable_capability][:id], provider_params[:disable_capability][:version])
    redirect_back_or_to edit_provider_path(@provider), notice: success ? "Disabled" : "Failed"
  elsif @provider.update!(provider_params)
    redirect_back_or_to edit_provider_path(@provider)
  else
    head :bad_request
  end
end