# Copyright(c) 2015-2023 ACCESS CO., LTD. All rights reserved.
use Croma
defmodule Antikythera.Plug.NoCache do
@header_value "private, no-cache, no-store, max-age=0"
def header_value(), do: @header_value
@moduledoc """
Plug to set a fixed value of `cache-control` response header in order to disable client side caching.
The value used is: `"#{@header_value}"`.
## Usage
Put the following line in your controller module:
plug Antikythera.Plug.NoCache, :put_resp_header, []
Note that this plug runs before your controller's actions; in your actions you can overwrite the `cache-control` header set by this plug.
"""
alias Antikythera.Conn
defun put_resp_header(conn :: v[Conn.t()], _opts :: any) :: Conn.t() do
Conn.put_resp_header(conn, "cache-control", @header_value)
end
end