extinctionrebellion/RebelsManager

View on GitHub
app/services/rebels/public/update_service.rb

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
module Rebels
  class Public::UpdateService < ServiceBase
    attr_reader :rebel

    def initialize(rebel:)
      @rebel = rebel
    end

    def run(params = {})
      context = {
        params: params
      }

      catch_error(context: context) do
        run!(params)
      end
    end

    def run!(params = {})
      service = Rebels::UpdateService.new(rebel: rebel)
      if service.run(params)
        rebel.update_column :self_updated_at, DateTime.now
      else
        raise service.error
      end
      true
    end

    private

    def rebel_params(params)
      params
        .require(:rebel)
        .permit(
          :availability,
          :dont_call,
          :email,
          :interests,
          :language,
          :local_group_id,
          :name,
          :notes,
          :phone,
          :postcode,
          :agree_with_principles,
          :active
        )
    end
  end
end