---
title: Funções Genéricas Fluid
slug: funcoes-genericas-fluid
description: Explore a comprehensive list of functions that can enhance the resolution capabilities of specific cases. This document covers the syntax for assigning generic functions to rules and provides detailed explanations, parameters, and usage examples for each 
icon: {"faIcon":"fa-brands fa-bandcamp"}
docTags: 
createdAt: 2023-05-08T13:22:09.000Z
---

## Objetivo/Resumo

Este documento traz funções disponiveis a serem utilizadas em rules, com objetivo de entregar mais alternativas para resolução de casos especificos. Essas funções se aplicam no valor do retorno da rule.

### Sintaxe

A sintaxe para atribuir uma função genérica a uma rule é:



```json
"generic": {
  "function": "informe a função generica aqui",
  "params": [            
    "parametros a serem passados na função"
  ]
}
```

### Funções

**GetRandom:** retorna um int randômico até 1000 ou até o número passado no params\[0]. Se o valor passado por parâmetro possuir a substring "$\{GetRandom}", é feito um replace.


**GetHash:** retorna o hash do valor passado por parâmetro.


**GetSlug:** retorna o slug do valor passado por parâmetro.


**GetTimestamp:&#x20;**&#x67;era e retorna o timestamp atual. Se o valor passado por parâmetro possuir a substring "$\{GetTimestamp}", é feito um replace.


**GetCurrentDateTime:&#x20;**&#x70;ega a data/hora atual para o timezone especificado e retorna no formato especificado no params\[0].

:::BlockQuote

params\[0]: formato da data/hora (default: "2006-01-02")
params\[1]: localização para converter timezone (default: "America/Sao\_Paulo")
:::


**FormatTimeWithTimezone:&#x20;**&#x63;onverte a data/hora para o timezone especificado e retorna no formato especificado no params\[0].

:::BlockQuote

params\[0]: formato da data/hora (default: "2006-01-02")
params\[1]: localização para converter timezone (default: "America/Sao\_Paulo")
:::


**Normalize:&#x20;**&#x6E;ormaliza a string retirando caracteres como acentos.
Ex: Florianópolis resulta em Florianopolis


**ConvertCase:&#x20;**&#x63;onverte a string para uppercase ou lowercase.


**EncodeBase64:&#x20;**&#x63;odifica string em base64.


**DecodeBase64:&#x20;**&#x64;ecodifica um valor base64 para string.


**SearchZipCode:&#x20;**&#x72;etorna valores da regição do codigo postal resgatado da rule. Os valores que podem ser requisitados por parametros são 'localidade' e 'uf', se nada for informado, será retornado dados do 'ibge'.


**GetStringPattern:&#x20;**&#x72;etorna strings em forma de titulo, deixando as primeiras letras das palavras maiusculas e os restantes minusculas, ignorando somente as preposições "a","com","de","e","em" e "para".&#x20;

:::BlockQuote
Ex: "café com leite" -> "Café com Leite".
:::

****
**GetFromToPersistent:&#x20;**&#x6F;btem o valor do "de/para" que esta no cache. No parametro é necessário um objeto contendo:

:::BlockQuote
"params": \[\{
&#x20;           "job\_from":"passo que persistiu o de/para",
&#x20;           "principal":"cliente envolvido",
&#x20;           "path\_from":"caminho"
&#x20;       }]
:::

****
**ExistsFromToPersistent:&#x20;**&#x76;erifica se existe o valor do "de/para" no cache. No parametro é necessário um objeto contendo:

:::BlockQuote
"params": \[\{
&#x20;           "job\_from":"passo que persistiu o de/para",
&#x20;           "principal":"cliente envolvido",
&#x20;           "path\_from":"caminho"
&#x20;       }]
:::

****
**ManipulateDate:&#x20;**&#x63;onverte data. No parametro é necessário enviar:

:::BlockQuote
"params": \[
&#x20;       "$parse: YYYY-MM-DD HH\:mm\:ss", --> formato do valor a ser convertido
&#x20;       "$format: DD/MM/YYYY" --> formato da conversão
&#x20;     ]
:::

****
**Split:** faz o split da string dado o separador e o índice esperado (utiliza strings.SplitN).
Primeiro param: separador para o split (default: " ")
Segundo param: índice esperado para retorno (default: 0, o qual retorna o primeiro resultado)
Terceiro param: número de substrings para retornar (default: -1, o qual retorna todos)
Para retornar o último, penúltimo, etc, passar índices negativos como -1, -2, ...

Exemplo:&#x20;

:::BlockQuote
"params": \[
&#x20;       " ",
&#x20;       "1",
&#x20;       "2"
&#x20;     ]
:::

