Class: MPI::Messages::FindProfileByEdipi

Inherits:
Object
  • Object
show all
Defined in:
lib/mpi/messages/find_profile_by_edipi.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(edipi:, search_type: MPI::Constants::CORRELATION_WITH_RELATIONSHIP_DATA) ⇒ FindProfileByEdipi

Returns a new instance of FindProfileByEdipi.



12
13
14
15
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 12

def initialize(edipi:, search_type: MPI::Constants::CORRELATION_WITH_RELATIONSHIP_DATA)
  @edipi = edipi
  @search_type = search_type
end

Instance Attribute Details

#edipiObject (readonly)

Returns the value of attribute edipi.



10
11
12
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 10

def edipi
  @edipi
end

#search_typeObject (readonly)

Returns the value of attribute search_type.



10
11
12
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 10

def search_type
  @search_type
end

Instance Method Details

#build_bodyObject (private)



26
27
28
29
30
31
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 26

def build_body
  body = RequestHelper.build_control_act_process_element
  body << RequestHelper.build_code(code: MPI::Constants::FIND_PROFILE_CONTROL_ACT_PROCESS)
  body << query_by_parameter
  body
end

#build_parameter_listObject (private)



38
39
40
41
42
43
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 38

def build_parameter_list
  element = RequestHelper.build_parameter_list_element
  element << RequestHelper.build_identifier(identifier: edipi, root: edipi_root)
  element << RequestHelper.build_vba_orchestration
  element
end

#edipi_rootObject (private)



45
46
47
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 45

def edipi_root
  MPI::Constants::DOD_ROOT_OID
end

#performObject



17
18
19
20
21
22
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 17

def perform
  MPI::Messages::RequestBuilder.new(extension: MPI::Constants::FIND_PROFILE, body: build_body).perform
rescue => e
  Rails.logger.error "[FindProfileByEdipi] Failed to build request: #{e.message}"
  raise e
end

#query_by_parameterObject (private)



33
34
35
36
# File 'lib/mpi/messages/find_profile_by_edipi.rb', line 33

def query_by_parameter
  query_by_parameter = RequestHelper.build_query_by_parameter(search_type:)
  query_by_parameter << build_parameter_list
end