Class: FlexiAdmin::Services::CreateResource

Inherits:
Object
  • Object
show all
Defined in:
lib/flexi_admin/services/create_resource.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params:, resource_class:) ⇒ CreateResource

Returns a new instance of CreateResource.



6
7
8
9
10
# File 'lib/flexi_admin/services/create_resource.rb', line 6

def initialize(params:, resource_class:)
  @params = params
  @resource_class = resource_class
  @errors = {}
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



4
5
6
# File 'lib/flexi_admin/services/create_resource.rb', line 4

def errors
  @errors
end

#paramsObject (readonly)

Returns the value of attribute params.



4
5
6
# File 'lib/flexi_admin/services/create_resource.rb', line 4

def params
  @params
end

#resource_classObject (readonly)

Returns the value of attribute resource_class.



4
5
6
# File 'lib/flexi_admin/services/create_resource.rb', line 4

def resource_class
  @resource_class
end

Class Method Details

.run(params:, resource_class:) ⇒ Object



12
13
14
# File 'lib/flexi_admin/services/create_resource.rb', line 12

def self.run(params:, resource_class:)
  new(params:, resource_class:).run
end

Instance Method Details

#runObject



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/flexi_admin/services/create_resource.rb', line 16

def run
  resource = resource_class.new(params)

  if resource.save
    resource
  else
    @errors.merge!(resource.errors)
    nil
  end

  self
end

#valid?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/flexi_admin/services/create_resource.rb', line 29

def valid?
  resource.present? && errors.valid?
end