summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/api/v1/cakes_controller.rb14
-rw-r--r--app/services/application/create_cake_command.rb18
-rw-r--r--spec/controllers/api/v1/cakes_controller_spec.rb2
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