import {MensagemAPI} from "./modelo/mensagem"; import {TipoMensagemAPI} from "./modelo/tipo-mensagem"; import {PostMessageApi} from "./post-message-api"; import {Atividade} from "./modelo/atividade"; export class BridgeRestApi { private fileReply: File; private postMessage: PostMessageApi; private readonly debug: boolean; private readonly debugAVAMEC: boolean; constructor(config) { if(!config) config = {debug: false, debugAVAMEC: false}; this.debug = config.debug ? config.debug : false; this.debugAVAMEC = config.debugAVAMEC ? config.debugAVAMEC : false; this.postMessage = new PostMessageApi(config); } estouNoAVAMEC() { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.ESTOU_NO_AVAMEC)); } obterDadosCurso() { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_DADOS_CURSO)); } registrarDadosGenericos(chave: string = this.required('registrarDadosGenericos'), valor: string = this.required('registrarDadosGenericos')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.REGISTRA_DADOS_GENERICOS, { chave: chave, valor: valor })); } obterDadosGenericos(chave: string = this.required('obterDadosGenericos')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_DADOS_GENERICOS, {chave: chave})); } registrarUltimaPaginaAcessada(identificadorUnidade: string = this.required('registrarUltimaPaginaAcessada'), urlUltimaPaginaAcessada: string) { urlUltimaPaginaAcessada = !urlUltimaPaginaAcessada ? window.location.pathname : window.location.pathname.split("/").slice(0, 7).join("/").concat("/") + urlUltimaPaginaAcessada; return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.REGISTRA_ULTIMA_PAGINA_ACESSADA, { identificadorUnidade: identificadorUnidade, urlUltimaPaginaAcessada: urlUltimaPaginaAcessada })); } obterUltimaPaginaAcessada(): Promise { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_ULTIMA_PAGINA_ACESSADA)); } obterConfiguracaoConclusaoUnidade(identificadorUnidade: string = this.required('obterConfiguracaoConclusaoUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_DADOS_CONFIGURACAO_CONCLUSAO_UNIDADE, {identificadorUnidade: identificadorUnidade})); } obterSeExisteProximaUnidade(identificadorUnidade: string = this.required('obterSeExisteProximaUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_SE_EXISTE_PROXIMA_UNIDADE, {identificadorUnidade: identificadorUnidade})); } obterSeExisteUnidadeAnterior(identificadorUnidade: string = this.required('obterSeExisteUnidadeAnterior')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_SE_EXISTE_UNIDADE_ANTERIOR, {identificadorUnidade: identificadorUnidade})); } obterProximaUnidade(identificadorUnidade: string = this.required('obterProximaUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_PROXIMA_UNIDADE, {identificadorUnidade: identificadorUnidade})); } obterUnidadeAnterior(identificadorUnidade: string = this.required('obterUnidadeAnterior')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_UNIDADE_ANTERIOR, {identificadorUnidade: identificadorUnidade})); } obterUnidade(identificadorUnidade: string = this.required('obterUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_UNIDADE, {identificadorUnidade: identificadorUnidade})); } registrarPorcentagemConclusaoUnidade(identificadorUnidade: string = this.required('registrarPorcentagemConclusaoUnidade'), porcentagem: number = this.required('registrarPorcentagemConclusaoUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.REGISTRA_PORCENTAGEM_CONCLUSAO_UNIDADE, { identificadorUnidade: identificadorUnidade, porcentagem: porcentagem })); } obterPorcentagemConclusaoUnidade(identificadorUnidade: string = this.required('obterPorcentagemConclusaoUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_PORCENTAGEM_CONCLUSAO_UNIDADE, {identificadorUnidade: identificadorUnidade})); } obterConfiguracaoAtividade(identificadorAtividade: string = this.required('obterConfiguracaoAtividade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_CONFIGURACAO_ATIVIDADE, {identificadorAtividade: identificadorAtividade})); } registrarRespostaAtividade(atividade: Atividade = this.required('registrarRespostaAtividade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.REGISTRA_RESPOSTA_ATIVIDADE, atividade)); } registrarRespostaAtividadeArquivo(identificadorAtividade: String = this.required('registrarRespostaAtividadeArquivo'), file: File) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.REGISTRA_RESPOSTA_ATIVIDADE_ARQUIVO, { identificadorAtividade: identificadorAtividade, file: file })); } obterRespostaAtividade(identificadorAtividade: string = this.required('obterRespostaAtividade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_RESPOSTA_ATIVIDADE, {identificadorAtividade: identificadorAtividade})); } obterComentariosAtividade(identificadorAtividade: string = this.required('obterComentariosAtividade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_COMENTARIOS_ATIVIDADE, {identificadorAtividade: identificadorAtividade})); } obterDadosConclusaoUnidade(identificadorUnidade: string = this.required('obterDadosConclusaoUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_DADOS_CONCLUSAO_UNIDADE, {identificadorUnidade: identificadorUnidade})); } obterTipoAcessoUnidade(identificadorUnidade: string = this.required('obterTipoAcessoUnidade')) { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_TIPO_ACESSO_UNIDADE, {identificadorUnidade: identificadorUnidade})); } obterDadosConclusaoCurso() { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_DADOS_CONCLUSAO_CURSO)); } obterStatusContraste() { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_STATUS_CONTRASTE)); } obterTamanhoFonteSistema() { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_TAMANHO_FONTE_SISTEMA)); } obterAncoraIrParaConteudo() { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_ANCORA_IR_PARA_CONTEUDO)); } obterIdentificadorUsuarioLogado() { return this.postMessage.enviarMensagem(new MensagemAPI(TipoMensagemAPI.OBTEM_IDENTIFICADOR_USUARIO)); } required(metodo: string): any { throw new Error('Todos os parâmetros da função ' + metodo + ' são obrigatórios.'); } }