lib/dhis2/api/bulk_creatable.rb
# frozen_string_literal: true
module Dhis2
module Api
module BulkCreatable
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def bulk_creation_status_class
::Dhis2::Api::ImportSummary
end
# args is a hash like: { data_element_groups: [{ name: "foo" }, { name: "bar" }] }
def bulk_create(client, args, raw_input = false)
response = client.post(path: "metadata", payload: args, raw_input: raw_input)
bulk_creation_status_class.new(response).tap do |summary|
unless summary.bulk_success?
exception = Dhis2::BulkCreationError.new("Didnt create bulk of data properly.\n Response: #{response.to_json}")
exception.import_summary = summary
raise exception
end
end
end
end
end
end
end