Class: Journeybook::Admin::AiPagesController

Inherits:
Journeybook::ApplicationController show all
Defined in:
app/controllers/journeybook/admin/ai_pages_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/journeybook/admin/ai_pages_controller.rb', line 12

def create
  @page = Page.new(page_params)
  @selected_template = template_for(params[:template_key])
  @page.page_type = @selected_template.page_type if @selected_template
  @prompt = params[:prompt].to_s
  @style_prompt = AiStylePrompt.find_by(id: params[:ai_style_prompt_id])
  set_templates
  set_style_prompts

  if @prompt.blank?
    @page.errors.add(:base, "Prompt is required.")
    return render :new, status: :unprocessable_entity
  end

  @page.markdown = Ai::MarkdownGenerator.new(site: @page.site, style_prompt: @style_prompt&.prompt, template: @selected_template).generate(prompt: @prompt)
  add_generation_errors
  render :new
rescue Ai::OpenaiClient::Error => error
  @page.errors.add(:base, error.message)
  render :new, status: :unprocessable_entity
end

#newObject



6
7
8
9
10
# File 'app/controllers/journeybook/admin/ai_pages_controller.rb', line 6

def new
  @page = Page.new(site: current_site || @sites.first, locale: current_site&.default_locale || "en", status: "draft")
  set_templates
  set_style_prompts
end