Sha256: 7bb4ecf00697b9ce362359964b9135e64b2dc0947165eef3d79985e469484a67

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Decidim
  module Lausanne
    module Budgets
      class UpdateUserRecord < Decidim::Lausanne::Budgets::Command
        attr_reader :user_record, :budget, :current_user
        def initialize(user_record, budget, current_user)
          @user_record = user_record
          @budget = budget
          @current_user = current_user
        end

        def call
          return broadcast(:invalid) unless budget
          return broadcast(:invalid) if user_record.invalid?

          new_user_record = nil
          transaction do
            new_user_record = UserRecord.create(
              first_name: user_record.first_name,
              last_name: user_record.last_name,
              birthdate: user_record.birthdate,
              iam_lausanne: user_record.iam_lausanne,
              its_me: user_record.its_me,
              allow_process_data: user_record.allow_process_data,
              user: current_user || nil,
              order: Order.create(
                budget: budget
              )
            )
          rescue e
            broadcast(:invalid)
          end
          broadcast(:ok, new_user_record)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
decidim-lausanne-budgets-0.1.0 app/commands/decidim/lausanne/budgets/update_user_record.rb