Sha256: 3326966a1eddac5bf3f337693a80e56f94ca0793cda88733718db0113f9e7be7

Contents?: true

Size: 1.82 KB

Versions: 2

Compression:

Stored size: 1.82 KB

Contents

module JiveAddOns
	module Concerns
		module Controllers
			module AddOns
				extend ActiveSupport::Concern

				def create
					@add_on = JiveAddOns::AddOn.new(register_params)
					@add_on.uninstalled = false
					@add_on.save

					render :nothing => true, :status => 204
				end

				def destroy
					@add_on = JiveAddOns::AddOn.where(unregister_params).first
					@add_on.update_attributes(:uninstalled => true)

					render :nothing => true, :status => 204
				end

				protected
					def validate_authenticity
						if !::Jive::SignedRequest.validate_registration(json_params)
							raise ActionController::BadRequest
						end
					end

					def failure
						render :nothing => true, :status => 403
					end

				private
					def json_params
						ActionController::Parameters.new(JSON.parse(request.body.read))
					end

					def unregister_params
						json_params.tap { |whitelisted|
							whitelisted[:tenant_id] = whitelisted[:tenantId]
							whitelisted[:client_id] = whitelisted[:clientId]
							whitelisted[:jive_url] = whitelisted[:jiveUrl]
							whitelisted[:jive_signature_url] = whitelisted[:jiveSignatureURL]
						}.permit(
							:tenant_id,
							:client_id,
							:jive_url,
							:jive_signature_url
						)
					end

					def register_params
						json_params.tap { |whitelisted|
							whitelisted[:tenant_id] = whitelisted[:tenantId]
							whitelisted[:client_id] = whitelisted[:clientId]
							whitelisted[:client_secret] = whitelisted[:clientSecret]
							whitelisted[:jive_url] = whitelisted[:jiveUrl]
							whitelisted[:jive_signature] = whitelisted[:jiveSignature]
							whitelisted[:jive_signature_url] = whitelisted[:jiveSignatureURL]
						}.permit(
							:tenant_id,
							:client_id,
							:client_secret,
							:jive_url,
							:jive_signature,
							:jive_signature_url
						)
					end
			end
		end
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jive_add_ons-0.0.3 lib/jive_add_ons/concerns/controllers/add_ons.rb
jive_add_ons-0.0.2 lib/jive_add_ons/concerns/controllers/add_ons.rb