lib/plug/plug.ex

defmodule Xmeta.Plug do
    use Plug.Router
    use Plug.ErrorHandler
  
    def config(:reloadable_compilers), do: [:elixir]
  
    if Mix.env() == :dev do
      use Plug.Debugger
    end
  
    plug Xmeta.Plug.CodeReloader, endpoint: __MODULE__
    
  
    plug(Plug.Parsers,
      parsers: [:urlencoded, :json],
      json_decoder: Jason
    )
  
    # plug(Plug.Logger, log: :debug)
    plug(:match)
    plug(:dispatch)
  
    @impl true
    def init(options) do
      # initialize options
      options
    end
  
    forward("/api/docs", to: Xmeta.Xapi.Docs.Plug)
    forward("/api", to: Xmeta.Xapi.Plug)
  
    get "/ping" do
      conn
      |> put_resp_content_type("text/html")
      |> send_resp(200, "<html><body><h1>hello xemta</h1></body></html>")
    end

    match _ do
      send_resp(conn, 404, "not found")
    end
  end