cresca_brasil_api 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/.project +18 -0
- data/Gemfile +5 -0
- data/Rakefile +1 -0
- data/cresca_brasil_api.gemspec +27 -0
- data/lib/cresca_brasil_api.rb +29 -0
- data/lib/cresca_brasil_api/connection.rb +40 -0
- data/lib/cresca_brasil_api/course.rb +22 -0
- data/lib/cresca_brasil_api/passport.rb +27 -0
- data/lib/cresca_brasil_api/version.rb +3 -0
- data/lib/generators/cresca_brasil_api/install_generator.rb +13 -0
- data/lib/generators/templates/cresca_brasil_api.rb +14 -0
- metadata +68 -0
data/.gitignore
ADDED
data/.project
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<projectDescription>
|
3
|
+
<name>cresca_brasil_api</name>
|
4
|
+
<comment></comment>
|
5
|
+
<projects>
|
6
|
+
</projects>
|
7
|
+
<buildSpec>
|
8
|
+
<buildCommand>
|
9
|
+
<name>com.aptana.ide.core.unifiedBuilder</name>
|
10
|
+
<arguments>
|
11
|
+
</arguments>
|
12
|
+
</buildCommand>
|
13
|
+
</buildSpec>
|
14
|
+
<natures>
|
15
|
+
<nature>org.radrails.rails.core.railsnature</nature>
|
16
|
+
<nature>com.aptana.ruby.core.rubynature</nature>
|
17
|
+
</natures>
|
18
|
+
</projectDescription>
|
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
require "cresca_brasil_api/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "cresca_brasil_api"
|
8
|
+
s.version = CrescaBrasilApi::VERSION
|
9
|
+
s.authors = ["Tarik"]
|
10
|
+
s.email = ["tarik@boschi.com.br"]
|
11
|
+
s.homepage = "http://www.boschi.com.br"
|
12
|
+
s.summary = %q{API Cresça Brasil}
|
13
|
+
s.description = %q{GEM para integração com a API da Cresça Brasil}
|
14
|
+
|
15
|
+
s.rubyforge_project = "cresca_brasil_api"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_dependency 'savon', '~> 2.1.0'
|
23
|
+
|
24
|
+
# specify any dependencies here; for example:
|
25
|
+
# s.add_development_dependency "rspec"
|
26
|
+
# s.add_runtime_dependency "rest-client"
|
27
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'savon'
|
2
|
+
require 'active_support/core_ext/class/attribute_accessors'
|
3
|
+
require 'active_support/core_ext/module/attribute_accessors'
|
4
|
+
require 'active_support/core_ext/hash'
|
5
|
+
require 'builder'
|
6
|
+
[:version,:connection, :course, :passport].each { |lib| require "cresca_brasil_api/#{lib}" }
|
7
|
+
|
8
|
+
module CrescaBrasilApi
|
9
|
+
class Production
|
10
|
+
URL = "http://api.crescabrasil.com.br/"
|
11
|
+
end
|
12
|
+
|
13
|
+
class Development
|
14
|
+
URL = "http://apibeta.crescabrasil.com.br/"
|
15
|
+
end
|
16
|
+
|
17
|
+
@@environment = :development
|
18
|
+
mattr_accessor :environment
|
19
|
+
@@login = ""
|
20
|
+
mattr_accessor :login
|
21
|
+
@@password = ""
|
22
|
+
mattr_accessor :password
|
23
|
+
|
24
|
+
def self.setup
|
25
|
+
yield self
|
26
|
+
end
|
27
|
+
|
28
|
+
class MissingArgumentError < StandardError; end
|
29
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
module CrescaBrasilApi
|
3
|
+
class Connection
|
4
|
+
attr_reader :environment
|
5
|
+
def initialize
|
6
|
+
@environment = eval(CrescaBrasilApi.environment.to_s.capitalize)
|
7
|
+
end
|
8
|
+
|
9
|
+
def request(service, method, version, xml)
|
10
|
+
client = client_savon(service, true)
|
11
|
+
response = client.call(method) do
|
12
|
+
message({:versao => version, :xmlParametros => xml})
|
13
|
+
end
|
14
|
+
get_response(method, response.body.to_hash)
|
15
|
+
end
|
16
|
+
|
17
|
+
def view_operations(service)
|
18
|
+
client = client_savon(service, false)
|
19
|
+
client.operations
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def client_savon(service, authenticate)
|
24
|
+
soap_header = {"AutenticacaoServico" => {email: CrescaBrasilApi.login, senha: CrescaBrasilApi.password}}
|
25
|
+
url = "#{self.environment::URL}#{service}.asmx?WSDL"
|
26
|
+
namespace = {"xmlns" => "http://tempuri.org/"}
|
27
|
+
if authenticate
|
28
|
+
client = Savon.client(wsdl: url, soap_header: soap_header, namespaces: namespace)
|
29
|
+
else
|
30
|
+
client = Savon.client(wsdl: url)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_response(method, data)
|
35
|
+
response = "#{method}_response".to_sym
|
36
|
+
result = "#{method}_result".to_sym
|
37
|
+
data[response][result]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module CrescaBrasilApi
|
2
|
+
class Course
|
3
|
+
def initialize
|
4
|
+
@connection = CrescaBrasilApi::Connection.new
|
5
|
+
end
|
6
|
+
|
7
|
+
def get_all_course(version, category = 0)
|
8
|
+
xml = "<curso><id_categoria>#{category}</id_categoria></curso>"
|
9
|
+
@connection.request("curso", :consultar_cursos_online, version, xml)
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_all_course_for_rescue(version, category = 0)
|
13
|
+
xml = "<curso><id_categoria>#{category}</id_categoria></curso>"
|
14
|
+
@connection.request("curso", :consultar_cursos_resgate, version, xml)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_all_category(version, language = "pt-BR")
|
18
|
+
xml = "<categoria><idioma>#{language}</idioma></categoria>"
|
19
|
+
@connection.request("curso", :consultar_categorias, version, xml)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module CrescaBrasilApi
|
2
|
+
class Passport
|
3
|
+
def initialize
|
4
|
+
@connection = CrescaBrasilApi::Connection.new
|
5
|
+
end
|
6
|
+
|
7
|
+
def generate(version, type_passport)
|
8
|
+
xml = "<passaporte><codigo_tipo>#{type_passport}</codigo_tipo><cliente></cliente></passaporte>"
|
9
|
+
@connection.request("passaporte", :gerar_passaporte, version, xml)
|
10
|
+
end
|
11
|
+
|
12
|
+
def generate_associated_course(version, type_passport, course_id)
|
13
|
+
xml = "<passaporte><codigo_tipo>#{type_passport}</codigo_tipo><codigo_curso>#{course_id}</codigo_curso><cliente></cliente></passaporte>"
|
14
|
+
@connection.request("passaporte", :gerar_passaporte_vinculado_ao_curso, version, xml)
|
15
|
+
end
|
16
|
+
|
17
|
+
def confirm_receive(version, passport_serie)
|
18
|
+
xml = "<passaporte><serie>#{passport_serie}</serie></passaporte>"
|
19
|
+
@connection.request("passaporte", :confirmar_passaporte, version, xml)
|
20
|
+
end
|
21
|
+
|
22
|
+
def cancel
|
23
|
+
xml = "<passaporte><serie>#{passport_serie}</serie></passaporte>"
|
24
|
+
@connection.request("passaporte", :cancelar_passaporte, version, xml)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module CrescaBrasilApi
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../../templates",__FILE__)
|
5
|
+
|
6
|
+
desc "Cria o initializer da CrescaBrasilApi na app rails"
|
7
|
+
|
8
|
+
def copy_initializer
|
9
|
+
template "cresca_brasil_api.rb", "config/initializers/cresca_brasil_api.rb"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Use esse arquivo para configurar a integração com a Cresca Brasil.
|
3
|
+
CrescaBrasilApi.setup do |config|
|
4
|
+
env = Rails.env
|
5
|
+
if(env == "production")
|
6
|
+
config.environment = :production
|
7
|
+
config.login = ""
|
8
|
+
config.password = ""
|
9
|
+
else
|
10
|
+
config.environment = :development
|
11
|
+
config.login = ""
|
12
|
+
config.password = ""
|
13
|
+
end
|
14
|
+
end
|
metadata
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cresca_brasil_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Tarik
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: savon
|
16
|
+
requirement: &19954248 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.1.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *19954248
|
25
|
+
description: GEM para integração com a API da Cresça Brasil
|
26
|
+
email:
|
27
|
+
- tarik@boschi.com.br
|
28
|
+
executables: []
|
29
|
+
extensions: []
|
30
|
+
extra_rdoc_files: []
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- .project
|
34
|
+
- Gemfile
|
35
|
+
- Rakefile
|
36
|
+
- cresca_brasil_api.gemspec
|
37
|
+
- lib/cresca_brasil_api.rb
|
38
|
+
- lib/cresca_brasil_api/connection.rb
|
39
|
+
- lib/cresca_brasil_api/course.rb
|
40
|
+
- lib/cresca_brasil_api/passport.rb
|
41
|
+
- lib/cresca_brasil_api/version.rb
|
42
|
+
- lib/generators/cresca_brasil_api/install_generator.rb
|
43
|
+
- lib/generators/templates/cresca_brasil_api.rb
|
44
|
+
homepage: http://www.boschi.com.br
|
45
|
+
licenses: []
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
requirements: []
|
63
|
+
rubyforge_project: cresca_brasil_api
|
64
|
+
rubygems_version: 1.8.16
|
65
|
+
signing_key:
|
66
|
+
specification_version: 3
|
67
|
+
summary: API Cresça Brasil
|
68
|
+
test_files: []
|