File tree 2 files changed +28
-1
lines changed
2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -48,7 +48,15 @@ defmodule ExRss.Feed do
48
48
"""
49
49
def changeset ( struct , params \\ % { } ) do
50
50
struct
51
- |> cast ( params , [ :title , :url ] )
51
+ |> cast ( params , [ :title , :url , :position ] )
52
+ |> validate_required ( [ :user_id , :title , :url ] )
53
+ |> assoc_constraint ( :user )
54
+ |> unique_constraint ( :url )
55
+ end
56
+
57
+ def api_changeset ( struct , params \\ % { } ) do
58
+ struct
59
+ |> cast ( params , [ :position ] )
52
60
|> validate_required ( [ :user_id , :title , :url ] )
53
61
|> assoc_constraint ( :user )
54
62
|> unique_constraint ( :url )
Original file line number Diff line number Diff line change @@ -114,6 +114,25 @@ defmodule ExRssWeb.Api.V1.FeedController do
114
114
end
115
115
end
116
116
117
+ def update ( conn , % { "id" => id , "feed" => feed_params } ) do
118
+ changeset =
119
+ Repo . get! ( User , conn . assigns . current_account . id )
120
+ |> assoc ( :feeds )
121
+ |> Repo . get! ( id )
122
+ |> Repo . preload ( :entries )
123
+ |> Feed . api_changeset ( feed_params )
124
+
125
+ case Repo . update ( changeset ) do
126
+ { :ok , feed } ->
127
+ json ( conn , feed )
128
+
129
+ _ ->
130
+ conn
131
+ |> resp ( :bad_request , "" )
132
+ |> halt
133
+ end
134
+ end
135
+
117
136
def update ( conn , _ ) do
118
137
conn
119
138
|> resp ( :bad_request , "" )
You can’t perform that action at this time.
0 commit comments