@@ -23,32 +23,34 @@ defmodule SWAPI.Starships do
2323 [%Starship{}, ...]
2424
2525 """
26- def list_starships do
27- Starship
28- |> Repo . all ( )
29- |> preload_all ( )
30- end
26+ def list_starships , do: Repo . all ( Starship )
3127
32- def list_starships ( params ) do
33- with { :ok , { starships , meta } } <- paginate ( Starship , params ) do
34- { :ok , { preload_all ( starships ) , meta } }
35- end
28+ def list_starships ( params ) , do: paginate ( Starship , params )
29+
30+ def search_starships ( terms ) do
31+ query =
32+ Starship
33+ |> join ( :left , [ s ] , t in Transport , on: s . id == t . id )
34+
35+ terms
36+ |> Enum . reduce ( query , fn term , query ->
37+ query
38+ |> where ( [ s , t ] , like ( t . name , ^ "%#{ term } %" ) or like ( t . model , ^ "%#{ term } %" ) )
39+ end )
40+ |> Repo . all ( )
3641 end
3742
3843 def search_starships ( terms , params ) do
3944 query =
4045 Starship
4146 |> join ( :left , [ s ] , t in Transport , on: s . id == t . id )
4247
43- starships =
44- Enum . reduce ( terms , query , fn term , query ->
45- query
46- |> where ( [ s , t ] , like ( t . name , ^ "%#{ term } %" ) or like ( t . model , ^ "%#{ term } %" ) )
47- end )
48-
49- with { :ok , { starships , meta } } <- paginate ( starships , params ) do
50- { :ok , { preload_all ( starships ) , meta } }
51- end
48+ terms
49+ |> Enum . reduce ( query , fn term , query ->
50+ query
51+ |> where ( [ s , t ] , like ( t . name , ^ "%#{ term } %" ) or like ( t . model , ^ "%#{ term } %" ) )
52+ end )
53+ |> paginate ( params )
5254 end
5355
5456 @ doc """
@@ -65,16 +67,12 @@ defmodule SWAPI.Starships do
6567 ** (Ecto.NoResultsError)
6668
6769 """
68- def get_starship! ( id ) do
69- Starship
70- |> Repo . get! ( id )
71- |> preload_all ( )
72- end
70+ def get_starship! ( id ) , do: Repo . get! ( Starship , id )
7371
7472 def get_starship ( id ) do
7573 case Repo . get ( Starship , id ) do
7674 % Starship { } = starship ->
77- { :ok , preload_all ( starship ) }
75+ { :ok , starship }
7876
7977 _ ->
8078 { :error , :not_found }
0 commit comments