How to document Ash actions with arguments

How to document an Ash action with arguments?

actions do
   read :list do
      argument :inicio_em, DateTimeUsec
      argument :fim_em, DateTimeUsec
      argument :filters, :term
      ...
   end
end

Document in what way?

To generate docs using mix docs.

actions do
   @doc """
   Lista estadias carregando associações essenciais e aplicando filtros dinâmicos utilizados pelo painel operacional.

   Usa `:inicio_em` e `:fim_em` para limitar o intervalo por `entrada_solicitada_em` e aplica filtros enviados pela interface administrativa.

   ## Parameters
   - `:inicio_em` — `DateTimeUsec` que define a data/hora mínima considerada.
   - `:fim_em` — `DateTimeUsec` que define a data/hora máxima considerada.
   - `:filters` — lista de tuplas `{:chave, valor}` tratadas na redução de filtros.

   ## Filters
   - `{:localizadores, lista}` restringe pelos localizadores informados.
   - `{:pessoa, "0" | "1"}` separa estadias sem pessoa vinculada das que possuem vínculo.
   - `{:entrada_plano_contrato_id, id}` filtra pelo plano de contrato associado.
   - `{:faturamento, "0" | "1"}` diferencia estadias faturadas ou pendentes.
   - `{:patio_identificacao, patio_id}` seleciona o pátio de destino da entrada.

   Retorna uma consulta `Ash.Query` pronta para paginação e composição das telas de operação.
   """
   read :list do
      argument :inicio_em, DateTimeUsec
      argument :fim_em, DateTimeUsec
      argument :filters, :term
      ...
   end
end

Right now the only thing you could do is add descriptions to the action and the arguments, and then you can get docs in mix docs on code interface functions.

read :list do
  description "description"

  argument :argument, Type do
    description "description"
  end
end
1 Like

The docs show the action description but don’t show the argument description.

What does:

Ash.Resource.Info.action_inputs(The.Resource, :the_action)

show?

iex(1)> Ash.Resource.Info.action_inputs(LGS.Operacional.Estadia, :list)
%{map: %{}, __struct__: MapSet}

Oh, we fixed this. Update ash :slight_smile:

To the last version?

Not sure which version it was fixed in, but the latest is a good place to start

2 Likes

I’ll try and let you know.

Great. It works with the last version.

Thanks.

1 Like