From d62b071aa28ee7ece0393cc2fa8ac42d2b981ae0 Mon Sep 17 00:00:00 2001 From: mo khan Date: Mon, 2 Feb 2015 21:42:47 -0700 Subject: publish message to rabbit to instead of creating a new event. --- app/controllers/events_controller.rb | 29 ++++++++++------------------- app/services/publisher.rb | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 19 deletions(-) create mode 100644 app/services/publisher.rb (limited to 'app') diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index 63ca73d..f5b7b0c 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -24,17 +24,8 @@ class EventsController < ApplicationController # POST /events # POST /events.json def create - @event = Event.new(event_params) - - respond_to do |format| - if @event.save - format.html { redirect_to @event, notice: 'Event was successfully created.' } - format.json { render :show, status: :created, location: @event } - else - format.html { render :new } - format.json { render json: @event.errors, status: :unprocessable_entity } - end - end + Publisher.publish("events", event_params) + redirect_to events_path, notice: 'Event was successfully created.' end # PATCH/PUT /events/1 @@ -62,13 +53,13 @@ class EventsController < ApplicationController end private - # Use callbacks to share common setup or constraints between actions. - def set_event - @event = Event.find(params[:id]) - end + # Use callbacks to share common setup or constraints between actions. + def set_event + @event = Event.find(params[:id]) + end - # Never trust parameters from the scary internet, only allow the white list through. - def event_params - params.require(:event).permit(:name, :data) - end + # Never trust parameters from the scary internet, only allow the white list through. + def event_params + params.require(:event).permit(:name, :data) + end end diff --git a/app/services/publisher.rb b/app/services/publisher.rb new file mode 100644 index 0000000..ef940e8 --- /dev/null +++ b/app/services/publisher.rb @@ -0,0 +1,16 @@ +class Publisher + def self.publish(exchange, message = {}) + exchange = channel.fanout("malwer.#{exchange}") + exchange.publish(message.to_json) + end + + def self.channel + @channel ||= connection.create_channel + end + + def self.connection + @connection ||= Bunny.new.tap do |connection| + connection.start + end + end +end -- cgit v1.2.3