zoeys.computer/lib/zoeyscomputer_web/controllers/gist_preview_controller.ex
2024-10-26 21:41:22 -04:00

30 lines
739 B
Elixir

defmodule ZoeyscomputerWeb.GistPreviewController do
use ZoeyscomputerWeb, :controller
require Logger
alias Zoeyscomputer.Gists
def show(conn, %{"id" => id}) do
gist = Gists.get_gist!(id)
{:ok, webp} = ZoeyscomputerWeb.GistLive.OgImage.get_webp(gist)
conn
|> put_resp_content_type("image/webp")
|> put_resp_header("cache-control", "public, max-age=300")
|> send_resp(200, webp)
|> halt()
end
def raw(conn, %{"id" => id}) do
gist = Gists.get_gist!(id)
webp = ZoeyscomputerWeb.GistLive.OgImage.generate_preview(gist)
conn
|> put_resp_content_type("image/svg+xml")
|> put_resp_header("cache-control", "public, max-age=300")
|> send_resp(200, webp)
|> halt()
end
end