MIDWAY: Performers photo adding.
This commit is contained in:
@@ -8,7 +8,8 @@
|
||||
import Config
|
||||
|
||||
config :runosaari,
|
||||
ecto_repos: [Runosaari.Repo]
|
||||
ecto_repos: [Runosaari.Repo],
|
||||
public_s3_host: System.get_env("S3_PUBLIC_HOST")
|
||||
|
||||
# Configures the endpoint
|
||||
config :runosaari, RunosaariWeb.Endpoint,
|
||||
@@ -35,5 +36,5 @@ config :ex_aws,
|
||||
access_key_id: System.get_env("S3_ACCESS_KEY"),
|
||||
secret_access_key: System.get_env("S3_SECRET_KEY"),
|
||||
s3: [
|
||||
host: System.get_env("S3_BUCKET_HOST")
|
||||
host: System.get_env("S3_PRIVATE_HOST")
|
||||
]
|
||||
|
||||
@@ -19,8 +19,27 @@ defmodule RunosaariWeb.PerformerController do
|
||||
render(conn, "new.html", changeset: changeset)
|
||||
end
|
||||
|
||||
def create(conn, %{"performer" => performer_params}) do
|
||||
case Registration.create_performer(performer_params) do
|
||||
def create(conn, %{"performer" => %{"photo" => photo_params} = 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} ->
|
||||
conn
|
||||
|> put_flash(
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
<%= textarea form, :seqnum %>
|
||||
<%= error_tag form, :seqnum %>
|
||||
|
||||
<%= label form, :photo_path, "Esiintyjän kuva" %>
|
||||
<%= file_input form, :photo_path %>
|
||||
<%= error_tag form, :photo_path %>
|
||||
<%= label form, :photo, "Esiintyjän kuva" %>
|
||||
<%= file_input form, :photo %>
|
||||
<%= error_tag form, :photo %>
|
||||
|
||||
<div class="checkbox-container">
|
||||
<%= checkbox form, :confirmed %>
|
||||
|
||||
3
mix.exs
3
mix.exs
@@ -51,7 +51,8 @@ defmodule Runosaari.MixProject do
|
||||
{:ex_aws, "~> 2.0"},
|
||||
{:ex_aws_s3, "~> 2.0"},
|
||||
{:poison, "~> 3.0"},
|
||||
{:hackney, "~> 1.9"}
|
||||
{:hackney, "~> 1.9"},
|
||||
{:uuid, "~> 1.1"}
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
1
mix.lock
1
mix.lock
@@ -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_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"},
|
||||
"uuid": {:hex, :uuid, "1.1.8", "e22fc04499de0de3ed1116b770c7737779f226ceefa0badb3592e64d5cfb4eb9", [:mix], [], "hexpm", "c790593b4c3b601f5dc2378baae7efaf5b3d73c4c6456ba85759905be792f2ac"},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user