Sha256: 0f148bae81bfc8d377818afeabf3d0c765471c6b70c8be62046b3802c2f31481
Contents?: true
Size: 1.54 KB
Versions: 8
Compression:
Stored size: 1.54 KB
Contents
# frozen_string_literal: true module Decidim module Votings module Admin # A command with all the business logic when creating a new polling station class CreatePollingStation < ManagePollingStation # Public: Initializes the command. # # form - A form object with the params. def initialize(form) @form = form end # Executes the command. Broadcasts these events: # # - :ok when everything is valid. # - :invalid if the form was not valid and we could not proceed. # # Returns nothing. def call return broadcast(:invalid) if form.invalid? polling_station = create_polling_station! manage_polling_officers(polling_station, form.polling_station_president_id, form.polling_station_manager_ids) if polling_station.persisted? broadcast(:ok, polling_station) else broadcast(:invalid) end end private attr_reader :form def create_polling_station! params = { voting: form.voting, title: form.title, address: form.address, latitude: form.latitude, longitude: form.longitude, location: form.location, location_hints: form.location_hints } Decidim.traceability.create!( PollingStation, form.current_user, params, visibility: "all" ) end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems