Powered by AppSignal & Oban Pro

Bulk Create Admin

bulk_create_admin.livemd

Bulk Create Admin

Mix.install([
  {:dns_cluster, "~> 0.2.0"},
  {:kino, "~> 0.17.0"},
  {:kino_explorer, "~> 0.1.25"}
])

Setup

Node.set_cookie(:plato)
DNSCluster.start_link(query: {"minsub-plato", "minsub-plato.internal"})
alias Explorer.DataFrame

Problems

form = Kino.Control.form([file: Kino.Input.file("File")], submit: "Send")
frame = Kino.Frame.new()
form
|> Kino.Control.stream()
|> Kino.listen(fn event ->
  path = Kino.Input.file_path(event.data.file.file_ref)
  df = DataFrame.from_csv!(path)
  rows = DataFrame.to_rows(df, atom_keys: true)

  Node.list(:connected)
  |> Enum.find(fn node ->
    to_string(node) |> String.starts_with?("minsub-plato")
  end)
  |> case do
    nil ->
      Kino.Frame.append(frame, "not connected")

    node ->
      Node.spawn_link(node, fn ->
        alias Plato.Domain
        alias Plato.Repo
# 
      end)

      Kino.Frame.append(frame, "created!")
  end
end)