Skip to content

Commit 7f44e27

Browse files
committed
Format codebase
1 parent 5e65e08 commit 7f44e27

File tree

17 files changed

+225
-152
lines changed

17 files changed

+225
-152
lines changed

lib/cereal/association_not_loaded_error.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ defmodule Cereal.AssociationNotLoadedError do
77
Please pre-fetch the relationship before serialization or override the
88
#{opts[:name]}/2 function in your serializer.
99
"""
10+
1011
%Cereal.AssociationNotLoadedError{message: msg}
1112
end
1213
end

lib/cereal/builders/base.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@ defmodule Cereal.Builders.Base do
1010
1111
Will correctly handle Scrievener pagination.
1212
"""
13-
@spec build(Cereal.Context.t) :: __MODULE__.t
13+
@spec build(Cereal.Context.t()) :: __MODULE__.t()
1414
def build(context)
15+
1516
if Code.ensure_loaded?(Scrivener) do
1617
def build(%{data: %Scrivener.Page{} = page, opts: opts} = context) do
1718
opts = opts |> Enum.into(%{}) |> Map.put(:page, to_page_options(page))
1819
build(%{context | data: page.entries, opts: opts})
1920
end
2021
end
22+
2123
def build(%{serializer: serializer, data: data, opts: opts} = context) do
2224
opts = parse_opts(opts)
2325
data = serializer.preload(data, context.conn, Map.get(opts, :include, []))
@@ -33,16 +35,19 @@ defmodule Cereal.Builders.Base do
3335
defp build_metadata(%{opts: opts}), do: Map.get(opts, :metadata)
3436

3537
defp parse_opts(opts) when is_list(opts), do: opts |> Map.new() |> parse_opts()
38+
3639
defp parse_opts(opts) when is_map(opts) do
3740
opts
3841
|> parse_includes()
3942
|> parse_fields_list(:fields)
4043
|> parse_fields_list(:excludes)
4144
end
45+
4246
defp parse_opts(_), do: %{}
4347

4448
defp parse_includes(%{include: include} = opts) when is_binary(include),
4549
do: %{opts | include: Utils.normalize_includes(include)}
50+
4651
defp parse_includes(opts), do: opts
4752

4853
defp parse_fields_list(opts, key) do

lib/cereal/builders/entity.ex

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ defmodule Cereal.Builders.Entity do
1010
|> Map.put(:data, entity)
1111
|> build()
1212
end)
13-
|> Enum.map(fn({:ok, result}) -> result end)
13+
|> Enum.map(fn {:ok, result} -> result end)
1414
end
1515

1616
def build(%{serializer: serializer} = context) do
@@ -23,18 +23,20 @@ defmodule Cereal.Builders.Entity do
2323
id: serializer.id(context.data, context.conn),
2424
type: serializer.type(context.data, context.conn),
2525
attributes: attributes(context),
26-
rels: relationships(context),
26+
rels: relationships(context)
2727
}
2828
end
2929

3030
# if an assigns/2 function was specified in the serializer - we'll add its
3131
# return value to the conn's assigns
3232
defp do_assigns(%{serializer: serializer, conn: conn, data: data} = context) do
3333
conn = Map.put_new(conn, :assigns, %{})
34+
3435
conn =
3536
data
3637
|> serializer.assigns(conn)
3738
|> Enum.reduce(conn, &do_assign/2)
39+
3840
%{context | conn: conn}
3941
end
4042

@@ -58,7 +60,7 @@ defmodule Cereal.Builders.Entity do
5860
relation =
5961
should_include_relation?(context.opts, name, rel_opts)
6062
|> case do
61-
true -> relation(context, name, rel_opts)
63+
true -> relation(context, name, rel_opts)
6264
false -> nil
6365
end
6466

@@ -71,6 +73,7 @@ defmodule Cereal.Builders.Entity do
7173
end
7274

7375
defp build_relation_entity(nil, _, _, _), do: nil
76+
7477
defp build_relation_entity(relation, context, name, rel_opts) do
7578
context
7679
|> Map.put(:serializer, rel_opts.serializer)
@@ -81,30 +84,37 @@ defmodule Cereal.Builders.Entity do
8184

8285
defp with_relationship_includes(%{include: includes} = opts, name) when is_list(includes),
8386
do: %{opts | include: includes[name]}
87+
8488
defp with_relationship_includes(opts, _), do: opts
8589

8690
# We include the option when the following is true:
8791
# 1) The relation options have `include: true`
8892
# 2) The `include` option is passed in and includes the resource
8993
defp should_include_relation?(_, _, %{include: true}), do: true
94+
9095
defp should_include_relation?(%{include: included}, name, _) when is_list(included),
9196
do: included[name] |> is_list()
97+
9298
defp should_include_relation?(_, _, %{include: false}), do: false
9399
defp should_include_relation?(_, _, _), do: true
94100

95101
defp filter_attributes(attrs, %{serializer: serializer, opts: %{fields: fields}} = context) when is_list(fields) do
96102
type = serializer.type(context.data, context.conn) |> String.to_atom()
97103
do_filter_attributes(attrs, {:take, fields[type]})
98104
end
105+
99106
defp filter_attributes(attrs, %{serializer: serializer, opts: %{excludes: fields}} = context) when is_list(fields) do
100107
type = serializer.type(context.data, context.conn) |> String.to_atom()
101108
do_filter_attributes(attrs, {:drop, fields[type]})
102109
end
110+
103111
defp filter_attributes(attrs, _), do: attrs
104112

105113
defp do_filter_attributes(attrs, {:take, fields}) when is_list(fields),
106114
do: Map.take(attrs, fields)
115+
107116
defp do_filter_attributes(attrs, {:drop, fields}) when is_list(fields),
108117
do: Map.drop(attrs, fields)
118+
109119
defp do_filter_attributes(attrs, _), do: attrs
110120
end

lib/cereal/builders/error.ex

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,38 @@ defmodule Cereal.Builders.Error do
33
defstruct [:title, :code, :detail, :source, {:meta, %{}}]
44

55
def build(%{data: %Ecto.Changeset{}} = context), do: build_errors_from_changeset(context)
6+
67
def build(%{data: data} = context) when is_list(data) do
7-
data |> Enum.map(fn error ->
8+
data
9+
|> Enum.map(fn error ->
810
context |> Map.put(:data, error) |> build()
911
end)
1012
end
13+
1114
def build(context) do
1215
attrs = with_serializer_context(context)
1316
struct(__MODULE__, attrs)
1417
end
1518

1619
defp build_errors_from_changeset(%{data: cs} = context) do
17-
cs.errors |> Enum.map(fn field ->
20+
cs.errors
21+
|> Enum.map(fn field ->
1822
context |> Map.put(:data, field) |> format_ecto_error()
1923
end)
2024
end
2125

2226
defp format_ecto_error(%{data: {field, {message, vals}}} = context) do
23-
message = Enum.reduce(vals, message, fn {key, value}, acc ->
24-
case key do
25-
:type -> acc
26-
_ -> String.replace(acc, "%{#{key}}", to_string(value))
27-
end
28-
end)
27+
message =
28+
Enum.reduce(vals, message, fn {key, value}, acc ->
29+
case key do
30+
:type -> acc
31+
_ -> String.replace(acc, "%{#{key}}", to_string(value))
32+
end
33+
end)
2934

3035
%{context | data: {field, message}} |> format_ecto_error()
3136
end
37+
3238
defp format_ecto_error(%{data: {field, message}, serializer: serializer} = context) do
3339
%__MODULE__{
3440
title: message,

lib/cereal/builders/errors.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ defmodule Cereal.Builders.Errors do
44

55
alias Cereal.Builders.Error
66

7-
@spec build(Cereal.Context.t) :: __MODULE__.t
7+
@spec build(Cereal.Context.t()) :: __MODULE__.t()
88
def build(%{serializer: serializer} = context) do
99
struct(__MODULE__, %{})
1010
|> Map.put(:title, serializer.title(context.conn))

lib/cereal/error_serializer.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ defmodule Cereal.ErrorSerializer do
1313
defp define_default_title do
1414
quote do
1515
def title(conn), do: Cereal.ErrorSerializer.title(conn)
16-
defoverridable [title: 1]
16+
defoverridable title: 1
1717
end
1818
end
1919

2020
defp define_default_status do
2121
quote do
2222
def status(conn), do: Cereal.ErrorSerializer.status(conn)
23-
defoverridable [status: 1]
23+
defoverridable status: 1
2424
end
2525
end
2626

@@ -29,7 +29,7 @@ defmodule Cereal.ErrorSerializer do
2929
def error_detail(data), do: Cereal.ErrorSerializer.error_detail(data)
3030
def error_code(message), do: Cereal.ErrorSerializer.error_code(message)
3131
def error_metadata(message, conn), do: Cereal.ErrorSerializer.error_metadata(message, conn)
32-
defoverridable [error_detail: 1, error_code: 1, error_metadata: 2]
32+
defoverridable error_detail: 1, error_code: 1, error_metadata: 2
3333
end
3434
end
3535

lib/cereal/formatter.ex

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ defmodule Cereal.Formatter do
77
@doc """
88
Given a base entity, format and returns a map or a list
99
"""
10-
@callback format(Cereal.Builder.Base.t | Cereal.Builder.Errors.t) :: Map.t | List.t
10+
@callback format(Cereal.Builder.Base.t() | Cereal.Builder.Errors.t()) :: Map.t() | List.t()
1111

12-
@spec format(Cereal.Builder.Base.t | Cereal.Builders.Errors.t) :: map | list
12+
@spec format(Cereal.Builder.Base.t() | Cereal.Builders.Errors.t()) :: map | list
1313
def format(base), do: apply(formatter(base), :format, [base])
1414

1515
defp formatter(%Cereal.Builders.Base{}),
1616
do: Application.get_env(:cereal, :formatter, Cereal.Formatters.Attributes)
17+
1718
defp formatter(%Cereal.Builders.Errors{}),
1819
do: Application.get_env(:cereal, :error_formatter, Cereal.Formatters.Errors)
1920
end

lib/cereal/formatters/attributes.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ defmodule Cereal.Formatters.Attributes do
66
defp format_data(data) when is_list(data) do
77
data
88
|> Task.async_stream(&format_data(&1))
9-
|> Enum.map(fn({:ok, result}) -> result end)
9+
|> Enum.map(fn {:ok, result} -> result end)
1010
end
11-
11+
1212
defp format_data(%Cereal.Builders.Entity{} = entity) do
1313
entity.attributes
1414
|> Map.put(:id, entity.id)

lib/cereal/formatters/errors.ex

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,18 @@ defmodule Cereal.Formatters.Errors do
22
@behaviour Cereal.Formatter
33

44
def format(%Cereal.Builders.Errors{} = base) do
5-
%{message: base.title,
6-
code: base.status,
7-
errors: format_errors(base.errors)}
5+
%{message: base.title, code: base.status, errors: format_errors(base.errors)}
86
end
97

108
defp format_errors(errors) when is_list(errors), do: errors |> Enum.map(&format_error/1)
119
defp format_errors(error), do: [format_error(error)]
1210

1311
defp format_error(%Cereal.Builders.Error{} = error) do
14-
%{field: error.source,
15-
detail: error.detail,
16-
title: error.title,
17-
code: error.code} |> maybe_attach_metadata(error)
12+
%{field: error.source, detail: error.detail, title: error.title, code: error.code} |> maybe_attach_metadata(error)
1813
end
1914

2015
defp maybe_attach_metadata(attrs, %{meta: %{}}), do: attrs
16+
2117
defp maybe_attach_metadata(attrs, %{meta: meta}) do
2218
attrs |> Map.put(:meta, meta)
2319
end

lib/cereal/phoenix_view.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
defmodule Cereal.PhoenixView do
22
defmacro __using__(_) do
33
module = __CALLER__.module
4+
45
quote do
56
use Cereal.Serializer
67

0 commit comments

Comments
 (0)