go-base
Cinto de utilidades para não precisar replicar funções básicas em todas as aplicações
Várias funções básicas para facilitar o desenvolvimento de aplicações em Go
Funções
Utils
Conversores
func MapInterfaceToBytes(data map[string]interface{}) []byte
Converte um map de interface para um slice de bytes
func ByteToMapInterface(bytes []byte) map[string]interface{}
Converte um slice de bytes para um map de interface
func MapStringToMapInterface(data map[string]string) map[string]interface{}
Converte um map de string para um map de interface
func InterfaceToInt(in interface{}) int
Converte uma interface para um inteiro
func StringToInt(str string) int
Converte uma string para um inteiro
Arquivos
func GetBaseDirectory(directory string) string
Retorna o diretório base da aplicação
func FileExists(path string) bool
Verifica se um arquivo ou diretório existe
func FileToBase64(path string) (string, error)
Converte um arquivo para base64
func FileMimeType(path string) string
Retorna o mime type de um arquivo
func FileCopy(source string, destination string) error
Copia um arquivo, validando se o arquivo de origem existe
Geral
func isTesting() bool
Verifica se a aplicação está em modo de teste
func Hash256(s string) string
Gera um hash SHA256
GetOnlyNumbers(str string) string
Retorna apenas os números de uma string
func CompleteWithZeros(str string, length int) string
Completa uma string com zeros a esquerda
func DatesInInterval(start string, end string) []string
Retorna um slice de strings com todas as datas entre o início e o fim do intervalo, incluindo as datas de início e fim
JWT
Estrutura usada para gerenciar o token JWT
func (j *JwtServer) Valid(token string) bool
Verifica se o token é válido
func (j *JwtServer) Create(payload map[string]interface{}) (string, error)
Cria um token JWT
func (j *JwtServer) Parse(token string) (map[string]interface{}, error)
Decodifica um token JWT
func ExtractValue(key string, jwt string) (interface{}, error)
Extrai um valor do token JWT
Validadores
func ValidateCPF(cpf string) bool
Valida um CPF
func ValidateUUID(subject string) bool
Valida um UUID
func ValidateTimestamp(timestamp string) bool
Valida um timestamp
func ValidateDDD(ddd string) bool
Valida um DDD
func ValidatePhoneNumber(phoneNumber string) bool
Valida um número de telefone
func HasOnlyNumbers(str string) bool
Verifica se uma string possui apenas números
func ValidateCellphoneNumber(phoneNumber string) error
Valida um número de celular
func ValidateLandlineNumber(phoneNumber string) error
Valida um número de telefone fixo
func ValidateEmail(email string) bool
Valida um email
Configuração
O pacote \conf
é responsável por carregar as configurações da aplicação
func (db *Database) NewDB(cfg *conf.DBConfiguration) error
Cria uma nova conexão com o banco de dados
func (db *Database) GetDatabase() *sql.DB
Retorna a conexão com o banco de dados
func (db *Database) IsConnected() bool
Verifica se a conexão com o banco de dados está ativa
func (db *Database) Close() error
Fecha a conexão com o banco de dados
func (db *Database) GetResult() (sql.Result, error)
Retorna o resultado da última query executada
func (db *Database) GetLastInsertId() uint64
Retorna o ID da última inserção
func (db *Database) GetStmt(sql string) (*sql.Stmt, error)
Retorna um statement para ser usado em queries
func (db *Database) Exec(sql string, data ...interface{}) error
Executa uma query
func (db *Database) GetOne(sql string, data ...interface{}) ([]byte, error)
Executa uma query e retorna apenas um resultado. Independente do tipo de dados, o resultado é retornado em um slice de bytes
func (db *Database) GetRecord(sqlString string, data ...interface{}) (map[string]interface{}, error)
Executa uma query e retorna apenas um resultado. O resultado é retornado em um map de interface
func (db *Database) GetRecords(sqlString string, data ...interface{}) ([]map[string]interface{}, error)
Executa uma query e retorna vários resultados. O resultado é retornado em um slice de map de interface
func (db *Database) Insert(tableName string, data map[string]interface{}) error
Insere um registro no banco de dados
func (db *Database) Update(tableName string, data map[string]interface{}) error
Atualiza um registro no banco de dados
func (db *Database) IsMySQL() bool
Verifica se o banco de dados é MySQL
func (db *Database) IsPostgreSQL() bool
Verifica se o banco de dados é PostgreSQL
func (db *Database) IsSQLite() bool
Verifica se o banco de dados é SQLite
Database
O pacote \database
é responsável por gerenciar a conexão com o banco de dados, além de disponibilizar funções para facilitar a manipulação de dados
func (p *Pool) AddConnection(name string, db *sql.DB) error
Adiciona uma nova conexão ao pool
func (p *Pool) GetConnection(name string) (*sql.DB, error)
Retorna uma conexão do pool
func (p *Pool) CloseConnection(name string) error
Fecha uma conexão do pool
func (p *Pool) IsConnected(name string) bool
Verifica se uma conexão está ativa
Mensagens
O pacote \messaging
é responsável por gerenciar as mensagens a serem enviadas ao usuário ou cliente
Legal One