Skip to content

Commit 1a07757

Browse files
committed
Fixed format
1 parent b39ad61 commit 1a07757

File tree

3 files changed

+54
-22
lines changed

3 files changed

+54
-22
lines changed

lib/cadet/assessments/assessments.ex

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ defmodule Cadet.Assessments do
2828
if role in @change_dates_assessment_role do
2929
assessment = Repo.get(Assessment, id)
3030
previous_open_time = assessment.open_at
31+
3132
cond do
3233
Timex.before?(close_at, open_at) ->
3334
{:error, {:bad_request, "New end date should occur after new opening date"}}
@@ -209,6 +210,7 @@ defmodule Cadet.Assessments do
209210
def assessment_with_questions_and_answers(id, user = %User{}, password)
210211
when is_ecto_id(id) do
211212
role = user.role
213+
212214
assessment =
213215
if role in @open_all_assessment_roles do
214216
Assessment
@@ -313,6 +315,7 @@ defmodule Cadet.Assessments do
313315

314316
def filter_published_assessments(assessments, user) do
315317
role = user.role
318+
316319
case role do
317320
:student -> where(assessments, is_published: true)
318321
_ -> assessments
@@ -346,7 +349,11 @@ defmodule Cadet.Assessments do
346349
@spec insert_or_update_assessments_and_questions(map(), [map()], boolean()) ::
347350
{:ok, any()}
348351
| {:error, Ecto.Multi.name(), any(), %{optional(Ecto.Multi.name()) => any()}}
349-
def insert_or_update_assessments_and_questions(assessment_params, questions_params, force_update) do
352+
def insert_or_update_assessments_and_questions(
353+
assessment_params,
354+
questions_params,
355+
force_update
356+
) do
350357
assessment_multi =
351358
Multi.insert_or_update(
352359
Multi.new(),
@@ -363,7 +370,10 @@ defmodule Cadet.Assessments do
363370
Multi.run(multi, String.to_atom("question#{index}"), fn _repo,
364371
%{assessment: %Assessment{id: id}} ->
365372
question_exists =
366-
Repo.exists?(where(Question, [q], q.assessment_id == ^id and q.display_order == ^index))
373+
Repo.exists?(
374+
where(Question, [q], q.assessment_id == ^id and q.display_order == ^index)
375+
)
376+
367377
# the !question_exists check allows for force updating of brand new assessments
368378
if !force_update or !question_exists do
369379
question_params
@@ -372,22 +382,28 @@ defmodule Cadet.Assessments do
372382
|> Repo.insert()
373383
else
374384
params =
375-
(if !question_params.max_xp do
385+
if !question_params.max_xp do
376386
question_params
377387
|> Map.put(:max_xp, 0)
378388
else
379389
question_params
380-
end)
390+
end
381391
|> Map.put(:display_order, index)
382392

383393
%{id: question_id, type: type} =
384394
where(Question, [q], q.display_order == ^index and q.assessment_id == ^id)
385395
|> Repo.one()
386396

387397
if question_params.type != Atom.to_string(type) do
388-
{:error, create_invalid_changeset_with_error(:question, "Question types should remain the same")}
398+
{:error,
399+
create_invalid_changeset_with_error(
400+
:question,
401+
"Question types should remain the same"
402+
)}
389403
else
390-
changeset = Question.changeset(%Question{assessment_id: id, id: question_id}, params)
404+
changeset =
405+
Question.changeset(%Question{assessment_id: id, id: question_id}, params)
406+
391407
Repo.update(changeset)
392408
end
393409
end
@@ -402,9 +418,9 @@ defmodule Cadet.Assessments do
402418
defp invalid_force_update(assessment_multi, questions_params) do
403419
assessment_id =
404420
(assessment_multi.operations
405-
|> List.first()
406-
|> elem(1)
407-
|> elem(1)).data.id
421+
|> List.first()
422+
|> elem(1)
423+
|> elem(1)).data.id
408424

409425
# check if assessment already exists
410426
if !assessment_id do
@@ -418,7 +434,8 @@ defmodule Cadet.Assessments do
418434
existing_questions_count =
419435
where(Question, [q], q.assessment_id == ^assessment_id)
420436
|> Repo.all()
421-
|> Enum.count
437+
|> Enum.count()
438+
422439
new_questions_count = Enum.count(questions_params)
423440
existing_questions_count != new_questions_count
424441
end
@@ -433,6 +450,7 @@ defmodule Cadet.Assessments do
433450
|> case do
434451
nil ->
435452
Assessment.changeset(%Assessment{}, params)
453+
436454
assessment ->
437455
cond do
438456
Timex.after?(assessment.open_at, Timex.now()) ->

lib/cadet/jobs/xml_parser.ex

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ defmodule Cadet.Updater.XMLParser do
7777
end
7878
end
7979

80-
@spec parse_xml(String.t(), boolean()) :: :ok | {:ok, String.t} | {:error, {atom(), String.t}}
80+
@spec parse_xml(String.t(), boolean()) ::
81+
:ok | {:ok, String.t()} | {:error, {atom(), String.t()}}
8182
def parse_xml(xml, force_update \\ false) do
8283
with {:ok, assessment_params} <- process_assessment(xml),
8384
{:ok, questions_params} <- process_questions(xml),
@@ -102,10 +103,12 @@ defmodule Cadet.Updater.XMLParser do
102103

103104
{:error, stage, changeset, _} when is_atom(stage) ->
104105
log_error_bad_changeset(changeset, stage)
106+
105107
changeset_error =
106108
changeset
107109
|> Map.get(:errors)
108110
|> extract_changeset_error_message
111+
109112
error_message = "Invalid #{stage} changeset #{changeset_error}"
110113
log_and_return_badrequest(error_message)
111114
end
@@ -117,6 +120,7 @@ defmodule Cadet.Updater.XMLParser do
117120
|> nested_tuple_to_list()
118121
|> List.flatten()
119122
|> Enum.reduce("", fn x, acc -> "#{acc <> to_string(x)} " end)
123+
120124
{:error, {:bad_request, "Invalid XML #{error_message}"}}
121125
end
122126

@@ -126,7 +130,7 @@ defmodule Cadet.Updater.XMLParser do
126130
|> List.foldr("", fn x, acc -> "#{acc <> x} " end)
127131
end
128132

129-
@spec process_assessment(String.t()) :: {:ok, map()} | {:error, String.t}
133+
@spec process_assessment(String.t()) :: {:ok, map()} | {:error, String.t()}
130134
defp process_assessment(xml) do
131135
open_at =
132136
Timex.now()
@@ -164,7 +168,6 @@ defmodule Cadet.Updater.XMLParser do
164168
end
165169

166170
{:ok, assessment_params}
167-
168171
rescue
169172
# This error is raised by xpath/3 when TASK does not exist (hence is equal to nil)
170173
Protocol.UndefinedError ->
@@ -188,7 +191,7 @@ defmodule Cadet.Updater.XMLParser do
188191
type
189192
end
190193

191-
@spec process_questions(String.t()) :: {:ok, [map()]} | {:error, String.t}
194+
@spec process_questions(String.t()) :: {:ok, [map()]} | {:error, String.t()}
192195
defp process_questions(xml) do
193196
default_library = xpath(xml, ~x"//TASK/DEPLOYMENT"e)
194197
default_grading_library = xpath(xml, ~x"//TASK/GRADERDEPLOYMENT"e)
@@ -234,7 +237,7 @@ defmodule Cadet.Updater.XMLParser do
234237
Logger.error("Changeset: #{inspect(changeset, pretty: true)}")
235238
end
236239

237-
@spec process_question_by_question_type(map()) :: map() | {:error, String.t}
240+
@spec process_question_by_question_type(map()) :: map() | {:error, String.t()}
238241
defp process_question_by_question_type(question) do
239242
question[:entity]
240243
|> process_question_entity_by_type(question[:type])
@@ -297,7 +300,7 @@ defmodule Cadet.Updater.XMLParser do
297300
{:error, "Invalid question type"}
298301
end
299302

300-
@spec process_question_library(map(), any(), any()) :: map() | {:error, String.t}
303+
@spec process_question_library(map(), any(), any()) :: map() | {:error, String.t()}
301304
defp process_question_library(question, default_library, default_grading_library) do
302305
library = xpath(question[:entity], ~x"./DEPLOYMENT"o) || default_library
303306

@@ -361,7 +364,7 @@ defmodule Cadet.Updater.XMLParser do
361364
end
362365

363366
defp nested_tuple_to_list(tuple) when is_tuple(tuple) do
364-
tuple |> Tuple.to_list |> Enum.map(&nested_tuple_to_list/1)
367+
tuple |> Tuple.to_list() |> Enum.map(&nested_tuple_to_list/1)
365368
end
366369

367370
defp nested_tuple_to_list(x), do: x

lib/cadet_web/controllers/assessments_controller.ex

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ defmodule CadetWeb.AssessmentsController do
3636
end
3737

3838
def publish(conn, %{"id" => id, "togglePublishTo" => toggle_publish_to}) do
39-
result = Assessments.toggle_publish_assessment(conn.assigns.current_user, id, toggle_publish_to)
39+
result =
40+
Assessments.toggle_publish_assessment(conn.assigns.current_user, id, toggle_publish_to)
4041

4142
case result do
4243
{:ok, _nil} ->
@@ -52,7 +53,14 @@ defmodule CadetWeb.AssessmentsController do
5253
def update(conn, %{"id" => id, "closeAt" => close_at, "openAt" => open_at}) do
5354
formatted_close_date = elem(DateTime.from_iso8601(close_at), 1)
5455
formatted_open_date = elem(DateTime.from_iso8601(open_at), 1)
55-
result = Assessments.change_dates_assessment(conn.assigns.current_user, id, formatted_close_date, formatted_open_date)
56+
57+
result =
58+
Assessments.change_dates_assessment(
59+
conn.assigns.current_user,
60+
id,
61+
formatted_close_date,
62+
formatted_open_date
63+
)
5664

5765
case result do
5866
{:ok, _nil} ->
@@ -81,11 +89,14 @@ defmodule CadetWeb.AssessmentsController do
8189

8290
def create(conn, %{"assessment" => assessment, "forceUpdate" => force_update}) do
8391
role = conn.assigns[:current_user].role
92+
8493
if role == :student do
8594
send_resp(conn, :forbidden, "User not allowed to create")
8695
else
87-
file = assessment["file"].path
88-
|> File.read!()
96+
file =
97+
assessment["file"].path
98+
|> File.read!()
99+
89100
result =
90101
case force_update do
91102
"true" -> parse_xml(file, true)
@@ -94,7 +105,7 @@ defmodule CadetWeb.AssessmentsController do
94105

95106
case result do
96107
:ok ->
97-
if (force_update == "true") do
108+
if force_update == "true" do
98109
send_resp(conn, 200, "Force Update OK")
99110
else
100111
send_resp(conn, 200, "OK")

0 commit comments

Comments
 (0)