Class: Crm::Amazon::ListingsController

Inherits:
CrmController
  • Object
show all
Defined in:
app/controllers/crm/amazon/listings_controller.rb

Instance Method Summary collapse

Instance Method Details

#executeObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/controllers/crm/amazon/listings_controller.rb', line 15

def execute
  @listing_optimizer = Amazon::ListingOptimizer.new(model: params.dig(:job, :model))
  @job = OpenStruct.new(params[:job])
  @job.target_locale = @job.target_locale.to_sym
  @job.result = @listing_optimizer.process(item: @item, prompt: @job.prompt, target_keywords: @job.target_keywords, locale: @job.target_locale)
  listing = @job.result.dig(:response, :listing)
  @job.product_title = listing[:product_title]
  listing[:bullet_points].each_with_index do |bullet_point, index|
    @job.send(:"bullet_point_#{index+1}=", bullet_point)
  end
  @job.product_description = listing[:product_description]
  @job.generic_keyword = listing[:generic_keyword]
  @job.target_keywords = listing[:target_keywords] || @listing_optimizer.target_keywords
  render :prompt
end

#indexObject



3
4
5
# File 'app/controllers/crm/amazon/listings_controller.rb', line 3

def index

end

#promptObject



7
8
9
10
11
12
13
# File 'app/controllers/crm/amazon/listings_controller.rb', line 7

def prompt
  @listing_optimizer = Amazon::ListingOptimizer.new
  @job = OpenStruct.new(params[:job])
  @job.prompt ||= @listing_optimizer.prompt
  @job.target_keywords ||= @item.amazon_target_keywords
  @job.model ||= Amazon::ListingOptimizer::DEFAULT_MODEL
end

#saveObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/crm/amazon/listings_controller.rb', line 31

def save
  @job = OpenStruct.new(params[:job])
  @link_to_product_line = @job.link_to_product_line.present?
  Mobility.with_locale(@job.target_locale) do
    @item.create_or_set_amazon_spec_value(name: 'Title', text_blurb: @job.product_title, link_to_product_line: @link_to_product_line) if @job.product_title.present? && @job.save_product_title.to_b
    @item.create_or_set_amazon_spec_value(name: "Feature 1", text_blurb: @job.bullet_point_1, link_to_product_line: @link_to_product_line) if @job.bullet_point_1.present? && @job.save_bullet_point_1.to_b
    @item.create_or_set_amazon_spec_value(name: "Feature 2", text_blurb: @job.bullet_point_2, link_to_product_line: @link_to_product_line) if @job.bullet_point_1.present? && @job.save_bullet_point_2.to_b
    @item.create_or_set_amazon_spec_value(name: "Feature 3", text_blurb: @job.bullet_point_3, link_to_product_line: @link_to_product_line) if @job.bullet_point_1.present? && @job.save_bullet_point_3.to_b
    @item.create_or_set_amazon_spec_value(name: "Feature 4", text_blurb: @job.bullet_point_4, link_to_product_line: @link_to_product_line) if @job.bullet_point_1.present? && @job.save_bullet_point_4.to_b
    @item.create_or_set_amazon_spec_value(name: "Feature 5", text_blurb: @job.bullet_point_5, link_to_product_line: @link_to_product_line) if @job.bullet_point_1.present? && @job.save_bullet_point_5.to_b
    @item.create_or_set_amazon_spec_value(name: "Feature 6", text_blurb: @job.bullet_point_6, link_to_product_line: @link_to_product_line) if @job.bullet_point_1.present? && @job.save_bullet_point_6.to_b
    @item.create_or_set_amazon_spec_value(name: 'Generic Keyword', text_blurb: @job.generic_keyword, link_to_product_line: @link_to_product_line) if @job.generic_keyword.present? && @job.save_generic_keyword.to_b
    @item.create_or_set_amazon_spec_value(name: 'Description', text_blurb: @job.product_description, link_to_product_line: @link_to_product_line) if @job.product_description.present? && @job.save_product_description.to_b
    @item.create_or_set_amazon_spec_value(name: 'Target Keywords', text_blurb: @job.target_keywords, link_to_product_line: @link_to_product_line) if @job.target_keywords && @job.save_target_keywords.to_b
  end
  @item.update_rendered_product_specifications(locales: [@job.target_locale])
  redirect_to item_path(@item, tab: "amazon")
end