Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Services #12

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Services #12

wants to merge 2 commits into from

Conversation

pbressan13
Copy link
Collaborator

Draft PR as an example using service using DB

@pbressan13 pbressan13 changed the base branch from main to v2-main June 28, 2024 02:25
@pbressan13
Copy link
Collaborator Author

Fiz meio que na correria, mais para você ter um exemplo

@ashcrysis
Copy link
Owner

ashcrysis commented Jun 28, 2024

Obrigada Pedro, vi aqui! ficou ótimo, peguei a ideia. Só deixando aqui pra não esquecermos que tá quebrando com o front end por quê o nome do usuário não tá sendo retornado pelo backend nessa versão do backend (já que o PR #8 ainda não foi mergeado com a main
image
image

@ashcrysis
Copy link
Owner

Daí nesse caso o Services seria só pra Pokemons né?

@pbressan13
Copy link
Collaborator Author

Daí nesse caso o Services seria só pra Pokemons né?

Isso mesmo

@@ -87,4 +86,8 @@ def set_pokemon
def pokemon_params
params.require(:pokemon).permit(:nome, :tipo, :imagem, moves: [])
end

def pokemons_service
PokemonsService.new(PokemonsApiRepository.new)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isso aqui seria um exemplo, que teriamos 2 repos, um que procuraria na base, outro na api

Comment on lines +6 to +10
def as_json
{
name: @pokemon.nome,
url: @pokemon.imagem
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aqui é como queremos mostrar a info, separei num presenter para separar a logica

@@ -0,0 +1,11 @@
class PokemonsService

def initialize(repository = PokemonsRepository.new)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Por padrão, será o PokemonsRepository (que procura na base), o controller está procurando o da API, isso é legal pra gente isolar a logica das barreiras de acesso a banco de dados, logo podemos mudar como acessamos os dados sem mudar a interface

@pbressan13
Copy link
Collaborator Author

Obrigada Pedro, vi aqui! ficou ótimo, peguei a ideia. Só deixando aqui pra não esquecermos que tá quebrando com o front end por quê o nome do usuário não tá sendo retornado pelo backend nessa versão do backend (já que o PR #8 ainda não foi mergeado com a main image image

Sim, provavel peguei ainda uma versão antiga, mas a ideia era que você abstraisse e fizesse um seu, eu queria mais demonstrar o que eu tinha imaginado, pq acho que não consegui explicar de uma forma clara na reunião, mas é por ai

@pbressan13 pbressan13 marked this pull request as draft June 28, 2024 15:19
@pbressan13 pbressan13 changed the base branch from v2-main to main July 1, 2024 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants