From 88b7befbcd0315b6618832f6e1a81ee41684415e Mon Sep 17 00:00:00 2001 From: wandji20 Date: Tue, 1 Aug 2023 19:55:36 +0100 Subject: [PATCH] Create step orderable element for step_text when creating a step via the API [SCI-8907] --- app/controllers/api/v1/steps_controller.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/v1/steps_controller.rb b/app/controllers/api/v1/steps_controller.rb index cb5e07073..a4293824d 100644 --- a/app/controllers/api/v1/steps_controller.rb +++ b/app/controllers/api/v1/steps_controller.rb @@ -30,15 +30,23 @@ module Api def create raise PermissionError.new(Protocol, :create) unless can_manage_protocol_in_module?(@protocol) - - step = @protocol.steps.create!( + step = @protocol.steps.build( step_params.except(:description) .merge!(completed: false, user: current_user, position: @protocol.number_of_steps, last_modified_by_id: current_user.id) ) - step.step_texts.create!(text: step_params[:description]) if step_params[:description] + ActiveRecord::Base.transaction do + step.save! + if step_params[:description] + step_text = step.step_texts.build(text: step_params[:description]) + step.step_orderable_elements.create!( + position: 0, + orderable: step_text + ) + end + end render jsonapi: step, serializer: StepSerializer, status: :created end