Class: Dhis2::Api::Version224::DataSet

Inherits:
Base
  • Object
show all
Includes:
BulkCreatable, Creatable, Deletable, Findable, Listable, Updatable, SaveValidator
Defined in:
lib/dhis2/api/version224/data_set.rb

Constant Summary collapse

Schema =
Dry::Validation.Schema do
  required(:name).filled
  required(:period_type).value(
    included_in?: ::Dhis2::Api::Version224::Constants.period_types
  )
end

Class Method Summary collapse

Instance Method Summary collapse

Methods included from SaveValidator

included

Methods included from Deletable

#delete

Methods included from Updatable

#update, #update_attributes

Methods included from BulkCreatable

included

Methods included from Creatable

included

Methods included from Findable

included

Methods included from Listable

included

Methods inherited from Base

#==, #initialize, resource_key, resource_name, #to_h

Constructor Details

This class inherits a constructor from Dhis2::Api::Base

Class Method Details

.creation_defaults(args) ⇒ Object



44
45
46
47
48
49
# File 'lib/dhis2/api/version224/data_set.rb', line 44

def self.creation_defaults(args)
  {
    code:        args[:short_name],
    period_type: "Monthly"
  }
end

Instance Method Details

#add_data_element(data_element_id, check: true) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/dhis2/api/version224/data_set.rb', line 28

def add_data_element(data_element_id, check: true)
  # this returns 204 on success and failure...
  client.post(path: "dataSets/#{id}/dataElements/#{data_element_id}", payload: {})
  return unless check
  updated_set = self.class.find(client, id)
  if updated_set.data_element_ids.include?(data_element_id)
    self.data_elements = updated_set.data_elements
  else
    raise Dhis2::DataElementAdditionError, "Could not add dataElement #{data_element_id}"
  end
end

#add_data_elements(new_data_element_ids) ⇒ Object



22
23
24
25
26
# File 'lib/dhis2/api/version224/data_set.rb', line 22

def add_data_elements(new_data_element_ids)
  (new_data_element_ids - data_element_ids).each do |data_element_id|
    add_data_element(data_element_id, check: true)
  end
end

#data_element_idsObject



40
41
42
# File 'lib/dhis2/api/version224/data_set.rb', line 40

def data_element_ids
  data_elements.map { |de| de["id"] }
end