MIDWAY: Performers photo adding.

This commit is contained in:
codevictory
2021-05-26 18:35:44 +03:00
parent 868e39eea2
commit 8befa3058c
5 changed files with 30 additions and 8 deletions

View File

@@ -8,7 +8,8 @@
import Config import Config
config :runosaari, config :runosaari,
ecto_repos: [Runosaari.Repo] ecto_repos: [Runosaari.Repo],
public_s3_host: System.get_env("S3_PUBLIC_HOST")
# Configures the endpoint # Configures the endpoint
config :runosaari, RunosaariWeb.Endpoint, config :runosaari, RunosaariWeb.Endpoint,
@@ -35,5 +36,5 @@ config :ex_aws,
access_key_id: System.get_env("S3_ACCESS_KEY"), access_key_id: System.get_env("S3_ACCESS_KEY"),
secret_access_key: System.get_env("S3_SECRET_KEY"), secret_access_key: System.get_env("S3_SECRET_KEY"),
s3: [ s3: [
host: System.get_env("S3_BUCKET_HOST") host: System.get_env("S3_PRIVATE_HOST")
] ]

View File

@@ -19,8 +19,27 @@ defmodule RunosaariWeb.PerformerController do
render(conn, "new.html", changeset: changeset) render(conn, "new.html", changeset: changeset)
end end
def create(conn, %{"performer" => performer_params}) do def create(conn, %{"performer" => %{"photo" => photo_params} = performer_params}) do
case Registration.create_performer(performer_params) do file_uuid = UUID.uuid4(:hex)
photo_filename = photo_params.filename
unique_filename = "#{file_uuid}-#{photo_filename}"
{:ok, photo_binary} = File.read(photo_params.path)
bucket_name = System.get_env("S3_BUCKET_NAME")
public_host = System.get_env("S3_PUBLIC_HOST")
photo =
ExAws.S3.put_object(bucket_name, unique_filename, photo_binary)
|> ExAws.request!()
updated_params =
performer_params
|> Map.update(photo, photo_params, fn _value ->
"https://#{public_host}/#{bucket_name}/performer_photos/#{unique_filename}"
end)
updated_changeset = Performer.changeset(%Performer{}, updated_params)
case Registration.create_performer(updated_changeset) do
{:ok, _performer} -> {:ok, _performer} ->
conn conn
|> put_flash( |> put_flash(

View File

@@ -17,9 +17,9 @@
<%= textarea form, :seqnum %> <%= textarea form, :seqnum %>
<%= error_tag form, :seqnum %> <%= error_tag form, :seqnum %>
<%= label form, :photo_path, "Esiintyjän kuva" %> <%= label form, :photo, "Esiintyjän kuva" %>
<%= file_input form, :photo_path %> <%= file_input form, :photo %>
<%= error_tag form, :photo_path %> <%= error_tag form, :photo %>
<div class="checkbox-container"> <div class="checkbox-container">
<%= checkbox form, :confirmed %> <%= checkbox form, :confirmed %>

View File

@@ -51,7 +51,8 @@ defmodule Runosaari.MixProject do
{:ex_aws, "~> 2.0"}, {:ex_aws, "~> 2.0"},
{:ex_aws_s3, "~> 2.0"}, {:ex_aws_s3, "~> 2.0"},
{:poison, "~> 3.0"}, {:poison, "~> 3.0"},
{:hackney, "~> 1.9"} {:hackney, "~> 1.9"},
{:uuid, "~> 1.1"}
] ]
end end

View File

@@ -41,4 +41,5 @@
"telemetry_metrics": {:hex, :telemetry_metrics, "0.6.0", "da9d49ee7e6bb1c259d36ce6539cd45ae14d81247a2b0c90edf55e2b50507f7b", [:mix], [{:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5cfe67ad464b243835512aa44321cee91faed6ea868d7fb761d7016e02915c3d"}, "telemetry_metrics": {:hex, :telemetry_metrics, "0.6.0", "da9d49ee7e6bb1c259d36ce6539cd45ae14d81247a2b0c90edf55e2b50507f7b", [:mix], [{:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5cfe67ad464b243835512aa44321cee91faed6ea868d7fb761d7016e02915c3d"},
"telemetry_poller": {:hex, :telemetry_poller, "0.5.1", "21071cc2e536810bac5628b935521ff3e28f0303e770951158c73eaaa01e962a", [:rebar3], [{:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4cab72069210bc6e7a080cec9afffad1b33370149ed5d379b81c7c5f0c663fd4"}, "telemetry_poller": {:hex, :telemetry_poller, "0.5.1", "21071cc2e536810bac5628b935521ff3e28f0303e770951158c73eaaa01e962a", [:rebar3], [{:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4cab72069210bc6e7a080cec9afffad1b33370149ed5d379b81c7c5f0c663fd4"},
"unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"},
"uuid": {:hex, :uuid, "1.1.8", "e22fc04499de0de3ed1116b770c7737779f226ceefa0badb3592e64d5cfb4eb9", [:mix], [], "hexpm", "c790593b4c3b601f5dc2378baae7efaf5b3d73c4c6456ba85759905be792f2ac"},
} }