Skip to content

Instantly share code, notes, and snippets.

View jonilsonds9's full-sized avatar

Jonilson Sousa jonilsonds9

View GitHub Profile
@jonilsonds9
jonilsonds9 / gist:b56eed0682f9cef7b33edcaf6e4da221
Created September 29, 2020 23:35
Classes Produto, JPAConfiguration, JPAProductionConfiguration
Produto.class:
```
@Entity
public class Produto {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String titulo;
@jonilsonds9
jonilsonds9 / logging_config.py
Last active February 1, 2022 12:59
Como configurar logs com flask e gunicorn como campo personalizado no log record
# Observe que nesse exemplo temos um pacote python com o nome "src" que é onde fica todo o código da nossa aplicação
# Primeiro devemos ter o arquivo "wsgi.py" que vai ser o cara que vamos usar para subir o servidor gunicorn,
# ele deve ser simples e apenas chamar nossa função de criação da aplicação:
from src import create_app
app = create_app()
# Digamos que temos um arquivo com o nome "logging_config.py" dentro do pacote "logging_config" que fica dentro também do
@jonilsonds9
jonilsonds9 / ignore_exceptions.py
Created March 3, 2022 18:43
Como ignorar algumas exceptions chatas que são enviadas pro Sentry.
# Digamos que tenhamos duas exceções personalizadas no arquivo `exceptions`:
class AlgumaException(Exception):
pass
class OutraException(Exception):
pass
# E queremos que essas exceptions não sejam enviadas para o Sentry forma alguma, então podemos ter um outro arquivo
@jonilsonds9
jonilsonds9 / file-buffer-nestjs.ts
Last active October 17, 2023 23:11
Uploading binary file (buffer) using NestJS
// Had to upload a binary file but multer only works with `multipart/form-data`
// And NestJS parses the request. So I had to manually upload it.
// First in `main.ts` I had to edit the following line:
const app = await NestFactory.create(AppModule);
// For:
const app = await NestFactory.create(AppModule, { bodyParser: false });
@jonilsonds9
jonilsonds9 / test.py
Last active March 14, 2022 14:34
Como usar um valor qualquer nos asserts de testes no Python
def _any(cls):
class Any(cls):
def __eq__(self, other):
return True
return Any()
# Para usar basta chamar a função:
_any(str)
@jonilsonds9
jonilsonds9 / mock_codes_requests.py
Created March 10, 2022 23:25
Zombar o retorno do requests.codes do Python
# Digamos que numa classe você tenta um if que pega os status_codes default disponibilizados pela lib:
if res.status_code == requests.codes['ok']: # esse requests é a lib
return True
# e que você estar mocando (mock) no teste usando uma fixture:
@pytest.fixture(scope='function')
def requests():
with patch('src.my_class.requests') as requests_mock:
# aqui vamos fazer a mágica
@jonilsonds9
jonilsonds9 / mock_create_response_of_requests.py
Created March 10, 2022 23:34
Função para criar um objeto Mock semelhante ao response da lib requests do Python para faclitar os testes.
# É uma função simples, recebe o status_code, um content, um json_data, e raise_for_status que é alguma exception da própria
# lib requests.
# Ela cria um Mock, e adiciona o status e o content, e verifica se tem alguma exception para lançar e adiciona e também
# se foi passado o json_data e também adiciona como um mock, para quando formos usar algo como:
# `response.json()` também conseguirmos.
def __response_mock(status=200, content="CONTENT", json_data=None, raise_for_status=None) -> Mock:
response = Mock()
response.status_code = status
response.content = content
@jonilsonds9
jonilsonds9 / spring-data-projection-list-nested.java
Last active October 16, 2024 17:49
Spring Data JPA Projection com List Nested Projection
// Temos primeiro as projections:
// CategoryProjection.java
public interface CategoryLoginProjection {
String getName();
String getCode();
String getIconPath();
List<SubcategoryLoginProjection> getSubcategories();
}
@jonilsonds9
jonilsonds9 / Instalar-zsh-e-componentes-ubuntu-22.04.md
Last active October 11, 2025 19:53
ZSH + Oh My Zsh + powerlevel10k + Fonts no Ubuntu 22.04

ZSH + Oh My Zsh + powerlevel10k + Fonts no Ubuntu 22.04

1. Instalar ZSH:

sudo apt-get install zsh

2. Instalar via curl, instale o mesmo se não tiver:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
@jonilsonds9
jonilsonds9 / mydumper-on-ubuntu-22.04.md
Last active July 29, 2022 20:56
Compilando o mydumper manual para rodar no Ubuntu 22.04

No Ubuntu 22.04, ainda não temos como usar o mydumper diretamente, precisamos fazer a compilação a partir do código fonte para poder instalar usando todas as versões de dependências mais novas.

Para fazer a compilação, assumindo que você está usando o Ubuntu 22.04 e o MySQL 8.0.29, faça a instalação de algumas coisinhas:

sudo apt-get install cmake g++ git -y
sudo apt-get install libglib2.0-dev zlib1g-dev libpcre3-dev libssl-dev libzstd-dev -y