summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2015-02-09 19:43:03 -0700
committermo khan <mo@mokhan.ca>2015-02-09 19:43:03 -0700
commit594d37bb40f3e3e0f15553383cf2a305d4d6742e (patch)
tree6236972f334d3ad778fbd51948d9635ae1226936 /app/controllers
parent72a1483c8f546fae6c93dcdf91cfd47c37bc2f90 (diff)
extract api.
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/agents/files_controller.rb28
-rw-r--r--app/controllers/agents_controller.rb58
-rw-r--r--app/controllers/api/agents/events_controller.rb19
-rw-r--r--app/controllers/api/agents/files_controller.rb21
-rw-r--r--app/controllers/api/agents_controller.rb15
-rw-r--r--app/controllers/dispositions_controller.rb42
6 files changed, 81 insertions, 102 deletions
diff --git a/app/controllers/agents/files_controller.rb b/app/controllers/agents/files_controller.rb
deleted file mode 100644
index 0f493fb..0000000
--- a/app/controllers/agents/files_controller.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-module Agents
- class FilesController < ApplicationController
- before_action :load_agent
- before_action do
- request.format = :json
- end
-
- def index
- end
-
- def show
- @fingerprint = params[:id]
- @file = Disposition.find_by(fingerprint: params[:id])
- message = {
- agent_id: params[:id],
- type: :lookup,
- data: params[:data]
- }
- Publisher.publish("events.scanned.#{@agent.id}", message)
- end
-
- private
-
- def load_agent
- @agent = Agent.find(params[:agent_id])
- end
- end
-end
diff --git a/app/controllers/agents_controller.rb b/app/controllers/agents_controller.rb
index a76a7ae..4acef9d 100644
--- a/app/controllers/agents_controller.rb
+++ b/app/controllers/agents_controller.rb
@@ -1,74 +1,48 @@
class AgentsController < ApplicationController
- before_action :set_agent, only: [:show, :edit, :update, :destroy]
-
- # GET /agents
- # GET /agents.json
def index
@agents = Agent.all
end
- # GET /agents/1
- # GET /agents/1.json
def show
+ @agent = Agent.find(params[:id])
end
- # GET /agents/new
def new
@agent = Agent.new
end
- # GET /agents/1/edit
def edit
+ @agent = Agent.find(params[:id])
end
- # POST /agents
- # POST /agents.json
def create
@agent = Agent.new(agent_params)
- respond_to do |format|
- if @agent.save
- format.html { redirect_to @agent, notice: 'Agent was successfully created.' }
- format.json { render :show, status: :created, location: @agent }
- else
- format.html { render :new }
- format.json { render json: @agent.errors, status: :unprocessable_entity }
- end
+ if @agent.save
+ redirect_to @agent, notice: 'Agent was successfully created.'
+ else
+ render :new
end
end
- # PATCH/PUT /agents/1
- # PATCH/PUT /agents/1.json
def update
- respond_to do |format|
- if @agent.update(agent_params)
- format.html { redirect_to @agent, notice: 'Agent was successfully updated.' }
- format.json { render :show, status: :ok, location: @agent }
- else
- format.html { render :edit }
- format.json { render json: @agent.errors, status: :unprocessable_entity }
- end
+ @agent = Agent.find(params[:id])
+ if @agent.update(agent_params)
+ redirect_to @agent, notice: 'Agent was successfully updated.'
+ else
+ render :edit
end
end
- # DELETE /agents/1
- # DELETE /agents/1.json
def destroy
+ @agent = Agent.find(params[:id])
@agent.destroy
- respond_to do |format|
- format.html { redirect_to agents_url, notice: 'Agent was successfully destroyed.' }
- format.json { head :no_content }
- end
+ redirect_to agents_url, notice: 'Agent was successfully destroyed.'
end
private
- # Use callbacks to share common setup or constraints between actions.
- def set_agent
- @agent = Agent.find(params[:id])
- end
- # Never trust parameters from the scary internet, only allow the white list through.
- def agent_params
- params.require(:agent).permit(:hostname)
- end
+ def agent_params
+ params.require(:agent).permit(:hostname)
+ end
end
diff --git a/app/controllers/api/agents/events_controller.rb b/app/controllers/api/agents/events_controller.rb
new file mode 100644
index 0000000..255a5bc
--- /dev/null
+++ b/app/controllers/api/agents/events_controller.rb
@@ -0,0 +1,19 @@
+module Api
+ module Agents
+ class EventsController < ApplicationController
+ def create
+ @agent = Agent.find(params[:agent_id])
+ message = event_params.merge({agent_id: @agent.id})
+ routing_key = "events.#{event_params[:type]}.#{@agent.id}"
+ Publisher.publish(routing_key, message)
+ render nothing: true
+ end
+
+ private
+
+ def event_params
+ params[:event]
+ end
+ end
+ end
+end
diff --git a/app/controllers/api/agents/files_controller.rb b/app/controllers/api/agents/files_controller.rb
new file mode 100644
index 0000000..fd7410c
--- /dev/null
+++ b/app/controllers/api/agents/files_controller.rb
@@ -0,0 +1,21 @@
+module Api
+ module Agents
+ class FilesController < ApplicationController
+ before_action do
+ request.format = :json
+ end
+
+ def show
+ @agent = Agent.find(params[:agent_id])
+ @fingerprint = params[:id]
+ @file = Disposition.find_by(fingerprint: params[:id])
+ message = {
+ agent_id: params[:id],
+ type: :lookup,
+ data: params[:data]
+ }
+ Publisher.publish("events.scanned.#{@agent.id}", message)
+ end
+ end
+ end
+end
diff --git a/app/controllers/api/agents_controller.rb b/app/controllers/api/agents_controller.rb
new file mode 100644
index 0000000..16174b1
--- /dev/null
+++ b/app/controllers/api/agents_controller.rb
@@ -0,0 +1,15 @@
+module Api
+ class AgentsController < ApplicationController
+ #before_action do
+ #request.format = :json
+ #end
+
+ def create
+ @agent = Agent.create!(agent_params)
+ end
+
+ def agent_params
+ params.require(:agent).permit(:hostname)
+ end
+ end
+end
diff --git a/app/controllers/dispositions_controller.rb b/app/controllers/dispositions_controller.rb
index 116b7bb..17f8657 100644
--- a/app/controllers/dispositions_controller.rb
+++ b/app/controllers/dispositions_controller.rb
@@ -1,68 +1,46 @@
class DispositionsController < ApplicationController
before_action :set_disposition, only: [:show, :edit, :update, :destroy]
- # GET /dispositions
- # GET /dispositions.json
def index
@dispositions = Disposition.all
end
- # GET /dispositions/1
- # GET /dispositions/1.json
def show
end
- # GET /dispositions/new
def new
@disposition = Disposition.new
@states = Disposition.states
end
- # GET /dispositions/1/edit
def edit
@states = Disposition.states
end
- # POST /dispositions
- # POST /dispositions.json
def create
fingerprint = disposition_params[:fingerprint]
Publisher.publish("commands.poke.#{fingerprint}", disposition_params)
- respond_to do |format|
- format.html { redirect_to dispositions_path, notice: 'Disposition was successfully created.' }
- format.json { head :no_content }
- end
+ redirect_to dispositions_path, notice: 'Disposition was successfully created.'
end
- # PATCH/PUT /dispositions/1
- # PATCH/PUT /dispositions/1.json
def update
Publisher.publish("poke", disposition_params)
- respond_to do |format|
- format.html { redirect_to dispositions_path, notice: 'Disposition was successfully updated.' }
- format.json { head :no_content }
- end
+ redirect_to dispositions_path, notice: 'Disposition was successfully updated.'
end
- # DELETE /dispositions/1
- # DELETE /dispositions/1.json
def destroy
@disposition.destroy
- respond_to do |format|
- format.html { redirect_to dispositions_url, notice: 'Disposition was successfully destroyed.' }
- format.json { head :no_content }
- end
+ redirect_to dispositions_url, notice: 'Disposition was successfully destroyed.'
end
private
- # Use callbacks to share common setup or constraints between actions.
- def set_disposition
- @disposition = Disposition.find_by(fingerprint: params[:id])
- end
- # Never trust parameters from the scary internet, only allow the white list through.
- def disposition_params
- params.require(:disposition).permit(:fingerprint, :state)
- end
+ def set_disposition
+ @disposition = Disposition.find_by(fingerprint: params[:id])
+ end
+
+ def disposition_params
+ params.require(:disposition).permit(:fingerprint, :state)
+ end
end