Commit d62b071
Changed files (3)
app
controllers
services
config
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
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
config/routes.rb
@@ -1,58 +1,4 @@
Rails.application.routes.draw do
resources :events
-
- # The priority is based upon order of creation: first created -> highest priority.
- # See how all your routes lay out with "rake routes".
-
- # You can have the root of your site routed with "root"
- # root 'welcome#index'
-
- # Example of regular route:
- # get 'products/:id' => 'catalog#view'
-
- # Example of named route that can be invoked with purchase_url(id: product.id)
- # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
-
- # Example resource route (maps HTTP verbs to controller actions automatically):
- # resources :products
-
- # Example resource route with options:
- # resources :products do
- # member do
- # get 'short'
- # post 'toggle'
- # end
- #
- # collection do
- # get 'sold'
- # end
- # end
-
- # Example resource route with sub-resources:
- # resources :products do
- # resources :comments, :sales
- # resource :seller
- # end
-
- # Example resource route with more complex sub-resources:
- # resources :products do
- # resources :comments
- # resources :sales do
- # get 'recent', on: :collection
- # end
- # end
-
- # Example resource route with concerns:
- # concern :toggleable do
- # post 'toggle'
- # end
- # resources :posts, concerns: :toggleable
- # resources :photos, concerns: :toggleable
-
- # Example resource route within a namespace:
- # namespace :admin do
- # # Directs /admin/products/* to Admin::ProductsController
- # # (app/controllers/admin/products_controller.rb)
- # resources :products
- # end
+ root 'events#index'
end