cambiatus / backend

Cambiatus GraphQL API
GNU Affero General Public License v3.0
21 stars 18 forks source link

Add members_since with community in GraphQl context #252

Closed MatheusBuss closed 2 years ago

MatheusBuss commented 2 years ago

What issue does this PR close

Closes #251 and Closes #223

Changes Proposed ( a list of new changes introduced by this PR)

MatheusBuss commented 2 years ago

@lucca65 como não achei uma maneira de fazer implementar o campo sem informar a comunidade duas vezes na query decidi já implementar o contexto nos plugs do absinthe também. Pensei em aproveitar e dar uma atualizada nas outras queries que também utilizam o communityId no mesmo PR.

lucca65 commented 2 years ago

+1! é um PR bem de refactor mesmo… manda bala!

MatheusBuss commented 2 years ago

@lucca65 até o momento eu fui retirando os argumentos communityId das queries e pegando sempre do contexto. Mas fiquei me perguntando se não vale a pena manter esse argumento em algumas queries. Mais com o pensar de um admin mesmo, que pdoe selecionar em qual comunidade fazer alterações ou queries.


E outra, em account_types têm algumas queries de transferência e contribuições que permitem inserir o communityId como filtro em uma comunidade específica. Pensei em transformar esse campo em um booleano pra filtrar na comunidade atual.

lucca65 commented 2 years ago

@lucca65 até o momento eu fui retirando os argumentos communityId das queries e pegando sempre do contexto. Mas fiquei me perguntando se não vale a pena manter esse argumento em algumas queries. Mais com o pensar de um admin mesmo, que pdoe selecionar em qual comunidade fazer alterações ou queries.

Mas nesse caso não seria mais fácil ter um seletor de comunidade na query, que altera o Community Domain e pronto?

lucca65 commented 2 years ago

E outra, em account_types têm algumas queries de transferência e contribuições que permitem inserir o communityId como filtro em uma comunidade específica. Pensei em transformar esse campo em um booleano pra filtrar na comunidade atual.

em qual? bati o olho rapidinho no account_types e não achei

MatheusBuss commented 2 years ago

E outra, em account_types têm algumas queries de transferência e contribuições que permitem inserir o communityId como filtro em uma comunidade específica. Pensei em transformar esse campo em um booleano pra filtrar na comunidade atual.

em qual? bati o olho rapidinho no account_types e não achei

lib/cambiatus_web/schema/account_types.ex - 216

    field(:contribution_count, non_null(:integer)) do
      arg(:community_id, :string,
        description:
          "Optional community filter, filling this will get only contributions from this community"
      )

      resolve(&AccountsResolver.get_contribution_count/3)
    end

lib/cambiatus_web/schema/account_types.ex - 232

    field(:claims, non_null(list_of(non_null(:claim)))) do
      arg(:community_id, :string,
        description:
          "Optional community filter, filling this will get only claims from this community"
      )

      resolve(dataloader(Cambiatus.Objectives))
    end

lib/cambiatus_web/schema/account_types.ex - 254

  input_object :transfer_filter do
    field(:date, :date, description: "The date of the transfer in `yyyy-mm-dd` format.")

    field(:direction, :transfer_direction,
      description: "If the user is receiving or sending the transaction"
    )

    field(:community_id, :string,
      description: "optional filter for querying transfers from a community"
    )
  end

Acho que são esses

henriquecbuss commented 2 years ago

Precisamos atualizar o frontend (https://github.com/cambiatus/frontend/issues/782) pra usar o novo schema antes de mergear esse PR, certo?

MatheusBuss commented 2 years ago

Certo