diff options
| -rw-r--r-- | app/controllers/api/v1/cakes_controller.rb | 14 | ||||
| -rw-r--r-- | app/services/application/create_cake_command.rb | 18 | ||||
| -rw-r--r-- | spec/controllers/api/v1/cakes_controller_spec.rb | 2 |
3 files changed, 7 insertions, 27 deletions
diff --git a/app/controllers/api/v1/cakes_controller.rb b/app/controllers/api/v1/cakes_controller.rb index 2c09fae0..9fb422c4 100644 --- a/app/controllers/api/v1/cakes_controller.rb +++ b/app/controllers/api/v1/cakes_controller.rb @@ -10,15 +10,11 @@ module Api end def create - CreateCakeCommand.new(self).run(cake_params, params[:cake][:tags]) - end - - def create_cake_succeeded(cake) - @cake = cake - end - - def create_cake_failed(cake) - @cake = cake + category = Category.find(cake_params[:category_id]) + @cake = current_user.create_cake(name: cake_params[:name], category: category) + if @cake.save + PublishToTwitterJob.set(wait_until: 1.hour.from_now).perform_later(@cake) + end end def update diff --git a/app/services/application/create_cake_command.rb b/app/services/application/create_cake_command.rb deleted file mode 100644 index 858c1b7c..00000000 --- a/app/services/application/create_cake_command.rb +++ /dev/null @@ -1,18 +0,0 @@ -class CreateCakeCommand - def initialize(context, current_user = context.current_user) - @context = context - @current_user = current_user - end - - def run(attributes, tags) - cake = @current_user.create_cake(name: attributes[:name], category: Category.find(attributes[:category_id])) - @current_user.tag(cake, with: tags, on: :tags) - - if cake.save - PublishToTwitterJob.set(wait_until: 1.hour.from_now).perform_later(cake) - @context.create_cake_succeeded(cake) - else - @context.create_cake_failed(cake) - end - end -end diff --git a/spec/controllers/api/v1/cakes_controller_spec.rb b/spec/controllers/api/v1/cakes_controller_spec.rb index a03f7e73..d7282cce 100644 --- a/spec/controllers/api/v1/cakes_controller_spec.rb +++ b/spec/controllers/api/v1/cakes_controller_spec.rb @@ -46,9 +46,11 @@ describe Api::V1::CakesController do it 'creates a new project' do xhr :post, :create, cake: { name: 'new-cake', category_id: category.id } + expect(Creation.count).to eql(1) expect(Creation.first.name).to eql('new-cake') expect(Creation.first.category).to eql(category) + expect(Creation.first.user).to eql(user) end end |
