defmodule CustomerServiceWeb.Plugs.RequireOrganizationId do @moduledoc """ Ensure `X-Organization-Id` header is provided. This plug must be used after `CustomerServiceWeb.Plugs.ExtractOrganizationId`. """ @behaviour Plug import Plug.Conn, only: [get_req_header: 2, halt: 1, send_resp: 3] @impl Plug def init(_opts), do: %{} @impl Plug def call(conn, _opts) do case get_req_header(conn, "x-organization-id") do [] -> conn |> halt() |> send_resp(:bad_request, "The organization id is required") [_org_id] -> conn end end end