lib/immudb/schemas/user.ex

defmodule Immudb.Schemas.User do
  @type t :: %__MODULE__{
          active: String.t(),
          create_date: String.t(),
          created_by: String.t(),
          permissions: [Immudb.Schemas.Permission.t()],
          user: String.t()
        }
  defstruct active: nil, create_date: nil, created_by: nil, permissions: [], user: nil

  def convert(users) do
    users
    |> Enum.map(fn
      %{
        active: active,
        createdat: create_date,
        createdby: created_by,
        permissions: permissions,
        user: user
      } ->
        %Immudb.Schemas.User{
          active: active,
          create_date: create_date,
          created_by: created_by,
          permissions:
            permissions
            |> Enum.map(fn %{database: database, permission: permission} ->
              %Immudb.Schemas.Permission{
                database: database,
                permission: permission |> Immudb.Schemas.Permission.to_atom()
              }
            end),
          user: user
        }
    end)
  end
end