Skip to content

Commit

Permalink
refatoração do código dos módulos RelatorioCompiler, RelatorioControl…
Browse files Browse the repository at this point in the history
…ler e RelatorioHTML
  • Loading branch information
matheus-fvp committed Feb 26, 2024
1 parent 36c2819 commit 60613f0
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 22 deletions.
40 changes: 22 additions & 18 deletions lib/pescarte/modulo_pesquisa/relatorio_compiler.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,36 @@ defmodule Pescarte.RelatorioCompiler do
relatorios = Enum.map(relatorios_selecionados, &find_relatorio/1)
htmls = Enum.map(relatorios, &RelatorioHTML.content/1)
pdfs = Enum.reduce(htmls, [], fn html, acc -> [{:html, html} | acc] end)
{:ok, pdf_compilado} = ChromicPDF.print_to_pdf(pdfs)
zip_file = criar_zip_file(pdf_compilado)
elem(zip_file, 1)

with {:ok, pdf_compilado} <- ChromicPDF.print_to_pdf(pdfs),
zip_file <- criar_zip_file(pdf_compilado) do
elem(zip_file, 1)
end
end

def gerar_pdf(relatorio) do
{:ok, pdf} =
[content: RelatorioHTML.content(relatorio), size: :a4]
|> ChromicPDF.Template.source_and_options()
|> ChromicPDF.print_to_pdf()
def gerar_pdf(relatorio_id) do
relatorio = find_relatorio(relatorio_id)

Base.decode64!(pdf)
with {:ok, pdf} <-
[content: RelatorioHTML.content(relatorio), size: :a4]
|> ChromicPDF.Template.source_and_options()
|> ChromicPDF.print_to_pdf() do
Base.decode64(pdf)
end
end

def find_relatorio(relatorio_id) do
defp find_relatorio(relatorio_id) do
Repository.fetch_relatorio_pesquisa_by_id(relatorio_id)
end

defp criar_zip_file(pdf) do
{:ok, zip_file} =
:zip.create(
"relatorios_compilados.zip",
[{~c"relatorios_compilados.pdf", Base.decode64!(pdf)}],
[:memory]
)

zip_file
with {:ok, zip_file} <-
:zip.create(
"relatorios_compilados.zip",
[{~c"relatorios_compilados.pdf", Base.decode64!(pdf)}],
[:memory]
) do
zip_file
end
end
end
3 changes: 1 addition & 2 deletions lib/pescarte_web/controllers/relatorio_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ defmodule PescarteWeb.Pesquisa.RelatorioController do
alias Pescarte.RelatorioCompiler

def download_pdf(conn, %{"id" => id}) do
relatorio = RelatorioCompiler.find_relatorio(id)
pdf_binary = RelatorioCompiler.gerar_pdf(relatorio)
pdf_binary = RelatorioCompiler.gerar_pdf(id)
enviar_pdf_response(conn, id, pdf_binary)
end

Expand Down
3 changes: 1 addition & 2 deletions lib/pescarte_web/templates/relatorio_html.ex
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ defmodule PescarteWeb.RelatorioHTML do
end

defp get_literal_mes(data) do
{:ok, mes} = Timex.lformat(data, "{Mfull}", "pt")
mes
Timex.lformat!(data, "{Mfull}", "pt")
end
end

0 comments on commit 60613f0

Please sign in to comment.