Class: NemID::PIDCPR

Inherits:
Object
  • Object
show all
Defined in:
lib/nemid/pid_cpr.rb

Instance Method Summary collapse

Constructor Details

#initialize(cert:, key:, spid:) ⇒ PIDCPR

Returns a new instance of PIDCPR.



6
7
8
9
# File 'lib/nemid/pid_cpr.rb', line 6

def initialize(cert:, key:, spid:)
  @crypto = NemID::Crypto.new(cert: cert, key: key)
  @spid = spid
end

Instance Method Details

#match(pid:, cpr:) ⇒ Object

STATUS CODE RESPONSES:

O = OK (”OK", "OK") 
1 = NO_MATCH ("CPR svarer ikke til PID", "CPR does not match PID")
2 = NO_PID ("PID eksisterer ikke", "PID doesn't exist") 
4 = NO_PID_IN_CERTIFICATE ("PID kunne ikke findes i certifikatet", "No PID in certificate") 
8 = NOT_AUTHORIZED_FOR_CPR_LOOKUP ("Der er ikke rettighed til at foretage CPR opslag", "Caller not authorized for CPR lookup") 
16 = BRUTE_FORCE_ATTEMPT_DETECTED ("Forsøg på systematisk søgning på CPR", "Brute force attempt detected") 
17 = NOT_AUTHORIZED_FOR_SERVICE_LOOKUP ( "Der er ikke rettighed til at foretage opslag på service", "Caller not authorized for service lookup") 
4096 = NOT_PID_SERVICE_REQUEST ("Modtaget message ikke pidCprRequest eller pidCprServerStatus", "Non request XML received") 
8192 = XML_PARSE_ERROR ("XML pakke kan ikke parses", "Non parsable XML received") 
8193 = XML_VERSION_NOT_SUPPORTED ("Version er ikke understøttet", "Version not supported") 
8194 = PID_DOES_NOT_MATCH_BASE64_CERTIFICATE ("PID stemmer med ikke med certifikat", "PID does not match certifikat") 
8195 = MISSING_CLIENT_CERT ("Klient certifikat ikke præsenteret", "No client certificate presented") 
16384 = INTERNAL_ERROR ("Intern DanID fejl", "Internal DanID error")


27
28
29
30
31
32
33
# File 'lib/nemid/pid_cpr.rb', line 27

def match pid:, cpr:
  response = soap_client.call(:pid,
    message: build_soap_message(pid: pid, cpr: cpr)
  )

  response.to_hash[:pid_response][:result][:pid_reply]
end