noahsettersten's picture
feat: Record user feedback on given code
712bb74
raw
history blame
938 Bytes
defmodule MedicalTranscription.CodeFeedback do
use Ecto.Schema
schema "code_feedbacks" do
field :text, :string
field :code, :string
field :response, :boolean
end
def changeset(code_feedback, params \\ %{}) do
code_feedback
|> Ecto.Changeset.cast(params, [:text, :code, :response])
|> Ecto.Changeset.validate_required([:text, :code, :response])
end
def track_response(params) do
changeset =
%MedicalTranscription.CodeFeedback{}
|> changeset(params)
case MedicalTranscription.Repo.insert(changeset) do
{:ok, _code_feedback} ->
{:ok, "Success!"}
{:error, changeset} ->
messages =
Ecto.Changeset.traverse_errors(changeset, fn {msg, opts} ->
Enum.reduce(opts, msg, fn {key, value}, acc ->
String.replace(acc, "%{#{key}}", to_string(value))
end)
end)
{:error, messages}
end
end
end