Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Revertida da versão 29

...

Consideramos este passo o mais importante, aqui é onde iremos configurar uma única instância da classe MingleService e ela funcionará por toda a sua aplicação. 

Utilizando o comando $ "ng generate service appinitservice" do Angular CLI, criamos um serviço AppInitService e nele realizamos a seguinte implementação: 

Lembrando que o Angular foi utilizado para este tutorial, mas pode ser qualquer plataforma escrita com Typescript.

Bloco de código
languagejs
firstline1
titleappInitService
linenumberstrue
import { Injectable } from '@angular/core';
import { MingleService, Configuration } from '@totvs/mingle';
@Injectable()
export class AppInitService {
 
 constructor(private mingleService: MingleService) { }
 
 mingleConfiguration(): Promise<any> {
   return new Promise((resolve, reject) => {
       
	 console.log("Mingle Service Configuration called");
    	 const configserver = new Configuration();
     config.modules.web = true;
     config.environment = 'DEV';
     config.modules.usage_metricsmingleService.servers.development;
	 const appId = 'your_app_id';
	 const web = true;
     config.modules.gateway = true;
     config.modules.push_notification = true;
     config.server = 'https://dev-mingle.totvs.com.br/api'
     config.app_identifier = 'identificadorDoAplicativo'
 
         this.mingleService.setConfiguration(config);
    
     this.mingleService.init();
     init(server, appId, web)
      .then( init => {
       resolve('Mingle Service Init');
     }).catch(error => {
       console.log("error" , error);
      
       reject(error);
     });  
	console.log("Mingle Service configuration completed");  
   });
 }}

...

Realize a importação da classe MingleService e a Configuration.

Bloco de código
languagejs
titleappInitService
import { MingleService, Configuration } from '@totvs/mingle';

O primeiro passo é definir a constante config como “new Configuration();” dentro do método mingleConfiguration()

Bloco de código
languagejs
titleappInitService
const config = new Configuration();

Configurações do módulo:

Em aplicações web utilize: config.modules.web = true; 

Em aplicações mobile utilize: config.modules.web = false;

Para utilizar as métricas automáticas do Mingle: config.modules.usage_metrics = true;

Para o servidor do Mingle realizar o sistema de gateway:  config.modules.gateway = true;

Para definir qual servidor do Mingle:

Deverão ser passados três parâmetros para a inicialização do Mingle (init):

O primeiro parâmetro que deverá ser passado é o servidor. 

Existem três servidores, sendo eles: Desenvolvimento

  1. Development = 'https://dev-mingle.totvs.com.br/api'

...

  1. Staging = 'https://hom-mingle.totvs.com.br/api'

...

  1. Production = 'https://mingle.totvs.com.br/api'

Como neste exemplo ainda estamos desenvolvendo, vamos utilizar o ambiente "Mingle DesenvolvimentoDevelopment": config.

  • server =

...

  • this.mingleService.servers.development;

Para utilizar o ambiente Staging

  • server =  this.mingleService.servers.staging;

Para utilizar o ambiente Production

  • server =  this.mingleService.servers.production;

O segundo parâmetro que deverá ser utilizado é o appId. Cada ambiente possui um appId por aplicativo, o appId deve ser solicitado para um membro da equipe do Mingle.

O terceiro parâmetro deverá ser a plataforma utilizada.

  • Em aplicações web utilize: web = true; 
  • Em aplicações mobile utilize: web = false; a biblioteca enviará o deviceID e a plataforma do mobile para o registro de métricas e gateways do Mingle Server. 

...

Após finalizar a configuração de acordo com as regras da sua aplicação, chame a função setConfiguration() da classe mingleService passando a sua configuração anterior:

...

languagejs
titleappInitService

...

Em seguida inicie o aplicativo utilizando o método init() da classe mingleService, informando os três parâmetros acima descritos:

Bloco de código
languagejs
firstline1
titleappInitService
linenumberstrue
this.mingleService.init(server, appId, web)
   .then( init => {
    resolve('Mingle Service Init');
})

...

Bloco de código
languagejs
firstline1
titleappInitServiceapp.module.ts
linenumberstrue
export function initializeApp1(appInitService: AppInitService) {
  return (): Promise<any> => { 
    return appInitService.mingleConfiguration();
  }
}

...

 2- Crie um provide para realizar o APP_INITIALIZER que será responsável por executar as configurações realizadas no tópico anterior

3- Realize a importação das classes declaradas em providers

Bloco de código
languagejs
firstline1
titleappInitService
linenumberstrue
providers: [
  AppInitService,
  MingleService,
  { provide: APP_INITIALIZER, useFactory: initializeApp1, deps:[AppInitService], multi: true},
  {provide: HTTP_INTERCEPTORS, useClass: MingleHttpInterceptor, multi: true}
]
],

Agora basta compilar a aplicação e acompanhar o terminal de logs.

Para essa aplicação utilizamos o comando: $ng   $ "ng serve"

Em caso de compilação e configuração positiva, sem erros, no console do seu navegador será Caso  no terminal seja apresentada a mensagem:  "Mingle Service configuration completed", sua configuração inicial deu certo. 

Acompanhe os próximos tópicos desta documentação para começar a desenvolver a aplicação utilizando o Mingle, como por exemplo realizar uma autenticação ou uma requisição de API  utilizando a segurança que o gateway do Mingle proporciona.

...