iesde 1.1.1 → 2.0.0
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.
- 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
|