Skip to content

guitar09/remote-functions-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Remote Functions

É um processador de Java Script onde você pode alterar comportamentos e regras de negócio da sua aplicação sem ter a necessidade de gerar uma nova build(APK).

Tipos de Retorno

Os possíveis tipos de retornos das suas funções em Java Script:

  • StringFunc
  • IntFunc
  • DoubleFunc
  • BooleanFunc

Exemplo Simples

Buscando o retorno de uma função simples em Java Script que retorna uma String

    //Aqui você busca suas funções Java Script de um WebService ou do Banco de dados etc
    let jsRepository = "function nome() { return 'Higor';} nome();";
    
    do {
        let retornoString = try ControllerFunction(function: jsRepository).build() as StringFunc
        print(retornoString.toResult())
    }catch {
        
    }

Funções com Parâmetros

Você pode criar funções para substituição de parâmetros, basta criar seus parâmetros com colchetes([ ]). Veja um exemplo:

    //Aqui você busca suas funções Java Script de um WebService ou do Banco de dados etc
    let jsRepository = "
    
     function isSaqueAprovado() 
      {   var LIMITE_MAXIMO_SAQUE = 800; 
          var saqueAprovado = [VALOR_SAQUE] <= LIMITE_MAXIMO_SAQUE; 
          return saqueAprovado;
      } 
      
      isSaqueAprovado();"
    
    do {
        let retornoBoolean = try ControllerFunction(function: jsRepository)
            .addParam(param: "VALOR_SAQUE", paramSet: "1000")
            .build() as BooleanFunc
        print(retornoBoolean.toResult())
    }catch {
        
    }

Nessa função isSaqueAprovado() poderíamos alterar a regra de negócio ao mudar o valor da constante LIMITE_MAXIMO_SAQUE, sendo que essa função Java Script teria que vir de algum endpoint do seu sistema.

Multiplas Funções com Parâmetros

      //Aqui você busca suas funções Java Script de um WebService ou do Banco de dados etc
    let jsRepository = "
    
     function isSaqueAprovado() {   
          var LIMITE_MAXIMO_SAQUE = 800; 
          var saqueAprovado = [VALOR_SAQUE] <= LIMITE_MAXIMO_SAQUE; 
          return saqueAprovado;
      } 
       
      function calculaFake() {
          var PERCENTUAL_TAXA = 0.03;
          return ([VALOR_TOTAL] + [VALOR_BONUS]) * PERCENTUAL_TAXA;
       }
       
       #FUNCTION_NAME#
          
      ;"
    
    do {
        let retornoBoolean = try ControllerFunction(function: jsRepository)
            .addParam(param: "VALOR_SAQUE", paramSet: "1000")
            .nameFunction(nameFunction: "isSaqueAprovado()")
            .build() as BooleanFunc
        print(retornoBoolean.toResult())
    }catch {
        
    }
    
    do  {
        let retornoDouble = try ControllerFunction(function: jsRepository)
            .addParam(param: "VALOR_TOTAL", paramSet: "500")
            .addParam(param: "VALOR_BONUS", paramSet: "10")
            .nameFunction(nameFunction: "calculaFake()")
            .build() as DoubleFunc
        
        print(retornoDouble.toResult())
    }catch {
        
    }

Quando você utilizar um Java Script com diversas funções utilize a tag de #FUNCTION_NAME# no final do seu arquivo de funções, assim você pode substituir o nome das suas funções através do método .nameFunction() na criação do seu objeto Controller.

Métodos Adicionais

Você pode realizar a verificação se todos os seus parâmetros foram substituidos nas suas funções em Java Script através do método:

.forceReplaceAllParams(replaceAllParams: true)

Você pode imprimir uma String do seu Java Script para verificar algum problema através do método:

.printFunction()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published