iesde 1.1.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README-OLD-API.md +258 -0
- data/README.md +137 -177
- data/examples/aulas/buscar.rb +45 -0
- data/examples/aulas/link_video.rb +36 -0
- data/examples/disciplinas/aulas.rb +30 -0
- data/examples/disciplinas/buscar.rb +27 -0
- data/examples/disciplinas/link_pdf.rb +14 -0
- data/examples/matriculas/ativar.rb +33 -0
- data/examples/matriculas/buscar.rb +15 -0
- data/examples/matriculas/criar.rb +38 -0
- data/examples/matriculas/criar_com_campos_obrigatorios.rb +20 -0
- data/iesde.gemspec +12 -3
- data/lib/concerns/linkable.rb +6 -0
- data/lib/concerns/stringable.rb +7 -0
- data/lib/concerns/underscorable.rb +13 -0
- data/lib/iesde.rb +28 -16
- data/lib/iesde/api.rb +109 -0
- data/lib/iesde/api/alterar_status_matricula.rb +9 -0
- data/lib/iesde/api/criar_matricula.rb +13 -0
- data/lib/iesde/api/obter_aula.rb +12 -0
- data/lib/iesde/api/obter_dados_pdf.rb +9 -0
- data/lib/iesde/api/obter_disciplina.rb +11 -0
- data/lib/iesde/api/obter_link_pdf.rb +10 -0
- data/lib/iesde/api/obter_matricula.rb +11 -0
- data/lib/iesde/api/obter_video.rb +11 -0
- data/lib/iesde/config.rb +2 -2
- data/lib/iesde/model/aula.rb +12 -21
- data/lib/iesde/model/disciplina.rb +45 -0
- data/lib/iesde/model/matricula.rb +43 -23
- data/lib/iesde/request.rb +70 -0
- data/lib/iesde/version.rb +1 -1
- metadata +171 -30
- data/lib/iesde/clients/buscararquivo.rb +0 -28
- data/lib/iesde/clients/cadastro.rb +0 -32
- data/lib/iesde/clients/inativa_acesso.rb +0 -21
- data/lib/iesde/clients/lista_curso.rb +0 -22
- data/lib/iesde/clients/logout.rb +0 -34
- data/lib/iesde/clients/obtem_aulas.rb +0 -21
- data/lib/iesde/clients/obtem_matriculas.rb +0 -23
- data/lib/iesde/error/validation_error.rb +0 -6
- data/lib/iesde/model/aluno.rb +0 -21
- data/lib/iesde/model/curso.rb +0 -113
- data/lib/iesde/wsdl_client.rb +0 -79
@@ -1,28 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Clients
|
3
|
-
class Buscararquivo < Iesde::WSDLClient
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@action = "buscararquivo"
|
7
|
-
@wsdl_url = "http://ws.videoaulasonline.com.br/index.php/pdf/buscararquivo/wsdl"
|
8
|
-
@format = [ :usuario, :senha, :curso, :aula, :tipo ]
|
9
|
-
@obligatory_params = [ :usuario, :senha, :curso, :aula, :tipo ]
|
10
|
-
end
|
11
|
-
|
12
|
-
def check_params params
|
13
|
-
errors = ""
|
14
|
-
errors << "[E-mail pode ter no máx 100 digitos]" if params[:usuario].size > 100
|
15
|
-
errors << "[CPF pode ter no máx 11 digitos]" if params[:senha].size > 11
|
16
|
-
errors << "[Curso pode ter no máx 6 digitos]" if params[:curso].size > 6
|
17
|
-
errors << "[Aula pode ter no máx 6 digitos]" if params[:aula].size > 6
|
18
|
-
errors << "[Tipo pode ser uma das letras P, C ou E]" unless ['P','C', 'E'].include?(params[:tipo])
|
19
|
-
errors
|
20
|
-
end
|
21
|
-
|
22
|
-
def map response
|
23
|
-
response.gsub("\"","")
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Clients
|
3
|
-
class Cadastro < Iesde::WSDLClient
|
4
|
-
|
5
|
-
CODIGO_RETORNO_SUCESSO = "001"
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@action = "Cadastro"
|
9
|
-
@wsdl_url = "http://ws.videoaulasonline.com.br/aluno/cadastro/wsdl"
|
10
|
-
@format = [ :login, :senha, :loginAluno, :cpf, :curso, :duracao, :tipo, :valor ]
|
11
|
-
@obligatory_params = [ :login, :senha, :loginAluno, :cpf, :curso, :duracao, :tipo ]
|
12
|
-
end
|
13
|
-
|
14
|
-
def check_params params
|
15
|
-
errors = super params
|
16
|
-
errors << "[LoginAluno pode ter no máx 100 digitos]" if params[:loginAluno].size > 100
|
17
|
-
errors << "[CPF pode ter no máx 11 digitos]" if params[:cpf].size > 11
|
18
|
-
errors << "[Curso pode ter no máx 6 digitos]" if params[:curso].size > 6
|
19
|
-
errors << "[Duracao precisa ser múltiplo de 30 dias e ter no máx 4 dígitos]" if params[:duracao].to_s.size > 4 || params[:duracao].to_i % 30 != 0
|
20
|
-
errors << "[Tipo pode ser uma das letras P, C ou E]" unless ['P','C', 'E'].include?(params[:tipo])
|
21
|
-
errors
|
22
|
-
end
|
23
|
-
|
24
|
-
def map response
|
25
|
-
ws_message = Iesde::Error::WSError.new(response)
|
26
|
-
raise ws_message if ws_message.code != CODIGO_RETORNO_SUCESSO
|
27
|
-
true
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Clients
|
3
|
-
class InativaAcesso < Iesde::WSDLClient
|
4
|
-
|
5
|
-
CODIGO_RETORNO_SUCESSO = "020"
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@action = "inativaAcesso"
|
9
|
-
@format = [ :login, :senha, :"LoginID" ]
|
10
|
-
@obligatory_params = [ :login, :senha, :"LoginID" ]
|
11
|
-
end
|
12
|
-
|
13
|
-
def map response
|
14
|
-
ws_message = Iesde::Error::WSError.new(response)
|
15
|
-
raise ws_message if ws_message.code != CODIGO_RETORNO_SUCESSO
|
16
|
-
true
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Clients
|
3
|
-
class ListaCurso < Iesde::WSDLClient
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@model = Iesde::Model::Curso
|
7
|
-
@action = "listaCurso"
|
8
|
-
@format = [ :login, :senha, :busca, :tipo, :site, :idCurso ]
|
9
|
-
@obligatory_params = [ :login, :senha, :busca, :tipo, :site ]
|
10
|
-
end
|
11
|
-
|
12
|
-
def check_params params
|
13
|
-
errors = super params
|
14
|
-
errors << "[Busca pode ter no máx 100 digitos]" if params[:busca].size > 100
|
15
|
-
errors << "[Tipo pode ser uma das letras P, C ou E]" unless ['P','C', 'E'].include?(params[:tipo])
|
16
|
-
errors << "[Quando tipo for P precisa especificar idCurso]" if params[:tipo] == 'P' && params[:idCurso].blank?
|
17
|
-
errors
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/iesde/clients/logout.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Clients
|
3
|
-
class Logout < Iesde::WSDLClient
|
4
|
-
|
5
|
-
CODIGO_RETORNO_LOGOUT_JA_REALIZADO = "027"
|
6
|
-
CODIGO_RETORNO_LOGOUT_REALIZADO = "028"
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
@wsdl_url = "http://ws.videoaulasonline.com.br/index.php/aluno/logout/wsdl"
|
10
|
-
@action = "logout"
|
11
|
-
@format = [ :login, :senha, :loginAluno, :cpf ]
|
12
|
-
@obligatory_params = [ :login, :senha, :loginAluno, :cpf ]
|
13
|
-
end
|
14
|
-
|
15
|
-
def check_params params
|
16
|
-
errors = super params
|
17
|
-
errors << "[LoginAluno pode ter no máx 100 digitos]" if params[:loginAluno].size > 100
|
18
|
-
errors << "[CPF pode ter no máx 11 digitos]" if params[:cpf].size > 11
|
19
|
-
errors
|
20
|
-
end
|
21
|
-
|
22
|
-
def map response
|
23
|
-
ws_message = Iesde::Error::WSError.new(response)
|
24
|
-
raise ws_message unless [CODIGO_RETORNO_LOGOUT_JA_REALIZADO, CODIGO_RETORNO_LOGOUT_REALIZADO].include?(ws_message.code)
|
25
|
-
true
|
26
|
-
end
|
27
|
-
|
28
|
-
def response_param
|
29
|
-
:logout
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Clients
|
3
|
-
class ObtemAula < Iesde::WSDLClient
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@model = Iesde::Model::Aula
|
7
|
-
@action = "obtemAulas"
|
8
|
-
@format = [ :login, :senha, :loginAluno, :cpf, :curso, :ancora, :tipo ]
|
9
|
-
@obligatory_params = [ :login, :senha, :loginAluno, :cpf, :curso, :tipo ]
|
10
|
-
end
|
11
|
-
|
12
|
-
def check_params params
|
13
|
-
errors = super params
|
14
|
-
errors << "[Curso pode ter no máx 6 digitos]" if params[:curso].size > 6
|
15
|
-
errors << "[Tipo pode ser uma das letras P, C ou E]" unless ['P','C', 'E'].include?(params[:tipo])
|
16
|
-
errors
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Clients
|
3
|
-
class ObtemMatricula < Iesde::WSDLClient
|
4
|
-
|
5
|
-
CODIGO_RETORNO_NENHUMA_ENCONTRADA = "010"
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@model = Iesde::Model::Matricula
|
9
|
-
@action = "obtemMatriculas"
|
10
|
-
@format = [ :login, :senha, :curso, :tipo ]
|
11
|
-
@obligatory_params = [ :login, :senha, :curso, :tipo ]
|
12
|
-
end
|
13
|
-
|
14
|
-
def check_params params
|
15
|
-
errors = super params
|
16
|
-
errors << "[Curso pode ter no máx 6 digitos]" if params[:curso].size > 6
|
17
|
-
errors << "[Tipo pode ser uma das letras P, C ou E]" unless ['P','C', 'E'].include?(params[:tipo])
|
18
|
-
errors
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/iesde/model/aluno.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Model
|
3
|
-
class Aluno
|
4
|
-
attr_accessor :login_aluno, :cpf, :login, :senha
|
5
|
-
|
6
|
-
def initialize(*args)
|
7
|
-
@login_aluno, @cpf, @login, @senha = args
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.logout params
|
11
|
-
client_logout = Iesde::WSDLClient.create :logout
|
12
|
-
client_logout.run params
|
13
|
-
end
|
14
|
-
|
15
|
-
def logout
|
16
|
-
Aluno.logout login: @login, senha: @senha, loginAluno: @login_aluno, cpf: @cpf
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/lib/iesde/model/curso.rb
DELETED
@@ -1,113 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
module Model
|
3
|
-
class Curso
|
4
|
-
|
5
|
-
TIPO_CURSOS_PADRAO = %w(C E)
|
6
|
-
TIPO_CURSO_PACOTE = 'P'
|
7
|
-
SITES_CURSOS = %w(4 22 10 7 6 13)
|
8
|
-
|
9
|
-
attr_accessor :tipo, :id, :nome, :objetivo, :temas, :autores, :carga_horaria, :valor, :quant_aulas, :categoria, :video_demo, :pdf_demo, :login, :senha
|
10
|
-
attr_reader :aulas, :matriculas
|
11
|
-
|
12
|
-
def initialize(*args)
|
13
|
-
@tipo, @id, @nome, @objetivo, @temas, @autores, @carga_horaria, @valor, @quant_aulas, @categoria, @video_demo, @pdf_demo = args
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.find params
|
17
|
-
curso = nil
|
18
|
-
|
19
|
-
if !params[:id].blank? && !params[:login].blank? && !params[:senha].blank?
|
20
|
-
search_params = { login: params[:login], senha: params[:senha], busca: "", tipo: "", site: "", idCurso: params[:id].to_s }
|
21
|
-
|
22
|
-
curso = buscar_cursos_padrao search_params
|
23
|
-
curso = buscar_cursos_nos_pacotes search_params unless curso
|
24
|
-
end
|
25
|
-
return curso
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.buscar params
|
29
|
-
client_busca_curso = WSDLClient.create :lista_curso
|
30
|
-
cursos = client_busca_curso.run params
|
31
|
-
cursos.each do |curso|
|
32
|
-
curso.login = params[:login]
|
33
|
-
curso.senha = params[:senha]
|
34
|
-
curso.tipo = params[:tipo]
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def aulas
|
39
|
-
@aulas ||= buscar_aulas
|
40
|
-
end
|
41
|
-
|
42
|
-
def matriculas
|
43
|
-
begin
|
44
|
-
@matriculas ||= buscar_matriculas
|
45
|
-
rescue Iesde::Error::WSError => e
|
46
|
-
if e.code == Iesde::Clients::ObtemMatricula::CODIGO_RETORNO_NENHUMA_ENCONTRADA
|
47
|
-
@matriculas = []
|
48
|
-
else
|
49
|
-
raise e
|
50
|
-
end
|
51
|
-
end
|
52
|
-
@matriculas
|
53
|
-
end
|
54
|
-
|
55
|
-
def alunos
|
56
|
-
matriculas.map &:aluno
|
57
|
-
end
|
58
|
-
|
59
|
-
private
|
60
|
-
|
61
|
-
def self.buscar_cursos_padrao params
|
62
|
-
curso = nil
|
63
|
-
TIPO_CURSOS_PADRAO.each do |tipo|
|
64
|
-
begin
|
65
|
-
params[:tipo] = tipo
|
66
|
-
cursos = Curso.buscar params
|
67
|
-
if cursos
|
68
|
-
curso = cursos.first
|
69
|
-
break
|
70
|
-
end
|
71
|
-
rescue Exception
|
72
|
-
end
|
73
|
-
end
|
74
|
-
curso
|
75
|
-
end
|
76
|
-
|
77
|
-
def self.buscar_cursos_nos_pacotes params
|
78
|
-
curso = nil
|
79
|
-
params[:tipo] = TIPO_CURSO_PACOTE
|
80
|
-
SITES_CURSOS.each do |site|
|
81
|
-
begin
|
82
|
-
params[:site] = site
|
83
|
-
cursos = Curso.buscar params
|
84
|
-
if cursos
|
85
|
-
curso = cursos.first
|
86
|
-
break
|
87
|
-
end
|
88
|
-
rescue Exception
|
89
|
-
end
|
90
|
-
end
|
91
|
-
curso
|
92
|
-
end
|
93
|
-
|
94
|
-
def buscar_aulas
|
95
|
-
aulas = Aula.buscar login: @login, senha: @senha, loginAluno: "", cpf: "", curso: @id, ancora: "", tipo: @tipo
|
96
|
-
passar_dados aulas
|
97
|
-
end
|
98
|
-
|
99
|
-
def buscar_matriculas
|
100
|
-
matriculas = Matricula.buscar login: @login, senha: @senha, curso: @id, tipo: @tipo
|
101
|
-
passar_dados matriculas
|
102
|
-
end
|
103
|
-
|
104
|
-
def passar_dados modelos
|
105
|
-
modelos.each do |modelo|
|
106
|
-
modelo.login = @login
|
107
|
-
modelo.senha = @senha
|
108
|
-
modelo.curso = self
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
data/lib/iesde/wsdl_client.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
module Iesde
|
2
|
-
class WSDLClient
|
3
|
-
|
4
|
-
CLIENTS_FOLDER = 'iesde/clients/'
|
5
|
-
SAVON_WEB_SERVICE_ENCODING = "iso-8859-1"
|
6
|
-
DEFAULT_WSDL_URL = "http://ws.videoaulasonline.com.br/acoes_webservice/:action/wsdl"
|
7
|
-
REQUEST_SUFIX = 'Request'
|
8
|
-
RESPONSE_PARAM_SUFIX = '_response'
|
9
|
-
|
10
|
-
attr_accessor :action, :client, :format, :obligatory_params, :model, :wsdl_url
|
11
|
-
|
12
|
-
def self.create client_name
|
13
|
-
client_name.to_s.prepend(CLIENTS_FOLDER).classify.constantize.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def fetch_user_credentials params
|
17
|
-
{ login: Iesde.config.default_username, senha: Iesde.config.default_password }.merge(params)
|
18
|
-
end
|
19
|
-
|
20
|
-
def check_params_format params
|
21
|
-
errors = ""
|
22
|
-
errors << "[Parâmetros incorretos! formato -> #{@format}]" unless params.keys.eql? @format
|
23
|
-
errors
|
24
|
-
end
|
25
|
-
|
26
|
-
def check_obligatory_params params
|
27
|
-
errors = ""
|
28
|
-
@obligatory_params.each do |param|
|
29
|
-
errors << "#{param} - Parâmetro Obrigatório!" if params[param].nil?
|
30
|
-
end
|
31
|
-
errors
|
32
|
-
end
|
33
|
-
|
34
|
-
def check_params params
|
35
|
-
errors = ""
|
36
|
-
errors << "[Login pode ter no máx 10 digitos]" if params[:login].size > 10
|
37
|
-
errors << "[Senha pode ter no máx 32 digitos]" if params[:senha].size > 32
|
38
|
-
errors
|
39
|
-
end
|
40
|
-
|
41
|
-
def validate params
|
42
|
-
errors = check_params_format params
|
43
|
-
errors = check_obligatory_params params if errors.empty?
|
44
|
-
errors = check_params params if errors.empty?
|
45
|
-
errors
|
46
|
-
end
|
47
|
-
|
48
|
-
def map response
|
49
|
-
JSON.parse(response).collect do |item|
|
50
|
-
model.new *item.values
|
51
|
-
end
|
52
|
-
rescue JSON::ParserError
|
53
|
-
raise Iesde::Error::WSError.new(response)
|
54
|
-
end
|
55
|
-
|
56
|
-
def response_param
|
57
|
-
:resultado
|
58
|
-
end
|
59
|
-
|
60
|
-
def run params
|
61
|
-
params = fetch_user_credentials(params) if Iesde.config && params[:login].blank? && params[:senha].blank?
|
62
|
-
errors = validate params
|
63
|
-
raise Iesde::Error::ValidationError.new(errors) unless errors.blank?
|
64
|
-
ws_response = client.call @action.underscore.to_sym, message: params, attributes: { name: (@action + REQUEST_SUFIX) }
|
65
|
-
raw_response = ws_response.body[@action.underscore.concat(RESPONSE_PARAM_SUFIX).to_sym][response_param]
|
66
|
-
map raw_response
|
67
|
-
end
|
68
|
-
|
69
|
-
private
|
70
|
-
|
71
|
-
def client
|
72
|
-
@client ||= Savon.client encoding: SAVON_WEB_SERVICE_ENCODING, wsdl: build_wsdl_url
|
73
|
-
end
|
74
|
-
|
75
|
-
def build_wsdl_url
|
76
|
-
@wsdl_url || DEFAULT_WSDL_URL.gsub(/:action/, @action)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|