Created
December 29, 2012 17:50
-
-
Save kubicek/4408309 to your computer and use it in GitHub Desktop.
Knihovna pro přímou registraci v systému MojeID
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "rubygems" | |
require "net/https" | |
require "uri" | |
require "json" | |
require "configatron" | |
configatron.mojeid_direct.uri="https://mojeid.fred.nic.cz/registration/direct/" | |
configatron.mojeid_direct.cacert_file="CZ.NIC-cacert.pem" | |
configatron.mojeid_direct.pem_file="our-test.pem" | |
configatron.mojeid_direct.realm="https://admin.xnet.cz" | |
class MojeID | |
def self.register(user_data) | |
# prepare registration data | |
user_data.merge!( | |
"realm" => configatron.mojeid_direct.realm, | |
"registration_nonce" => "1" | |
) | |
# prepare secure connection | |
uri = URI.parse(configatron.mojeid_direct.uri) | |
pem = File.read(configatron.mojeid_direct.pem_file) | |
http = Net::HTTP.new(uri.host, uri.port) | |
http.use_ssl = true | |
http.cert = OpenSSL::X509::Certificate.new(pem) | |
http.ca_file = configatron.mojeid_direct.cacert_file | |
http.key = OpenSSL::PKey::RSA.new(pem) | |
http.verify_mode = OpenSSL::SSL::VERIFY_PEER | |
# send request to MojeID | |
request = Net::HTTP::Post.new(uri.request_uri) | |
request.set_form_data(user_data) | |
raw_response = http.request(request) | |
# process response | |
response = JSON.parse(raw_response.body) | |
result = case response['status'] | |
when "SUCCESS" then puts "OK" | |
when "ERROR" then puts "ERROR: " + response['reason'] | |
when "FAILURE" then puts "FAILS:\n" + response['errors'].collect{|k,v| "#{k} - #{v['msg']}"}.join("\n") | |
end | |
end | |
end | |
MojeID.register( | |
"username" => "jnovak1234", | |
"first_name" => "J", | |
"last_name" => "Novák", | |
"address__default__street1" => "U testu 123", | |
"address__default__city" => "Praha", | |
"address__default__postal_code" => "123 00", | |
"address__default__country" => "CZ", | |
"email__default__email" => "novak@nic.cz", | |
"phone__default__number" => "+420.728001002" | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment