@@ -11,13 +11,15 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
11
11
alias GroupherServer . { Accounts , CMS , Delivery , Email , Repo , Statistics }
12
12
13
13
alias Accounts.User
14
- alias CMS . { Author , Community , Delegate , Tag , Topic }
14
+ alias CMS . { Author , Community , Embeds , Delegate , Tag , Topic }
15
15
16
16
alias Delegate.ArticleOperation
17
17
alias Helper . { Later , ORM , QueryBuilder }
18
18
19
19
alias Ecto.Multi
20
20
21
+ @ default_article_meta Embeds.ArticleMeta . default_meta ( )
22
+
21
23
@ doc """
22
24
login user read cms content by add views count and viewer record
23
25
"""
@@ -69,14 +71,11 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
69
71
{ :ok , community } <- ORM . find ( Community , cid ) do
70
72
Multi . new ( )
71
73
|> Multi . run ( :create_content , fn _ , _ ->
72
- exec_create_content ( action . target , attrs , author , community )
74
+ do_create_content ( action . target , attrs , author , community )
73
75
end )
74
76
|> Multi . run ( :set_community , fn _ , % { create_content: content } ->
75
77
ArticleOperation . set_community ( community , thread , content . id )
76
78
end )
77
- |> Multi . run ( :set_meta , fn _ , % { create_content: content } ->
78
- ArticleOperation . set_meta ( thread , content . id )
79
- end )
80
79
|> Multi . run ( :set_topic , fn _ , % { create_content: content } ->
81
80
exec_set_topic ( thread , content . id , attrs )
82
81
end )
@@ -130,8 +129,8 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
130
129
|> Multi . run ( :update_content , fn _ , _ ->
131
130
ORM . update ( content , args )
132
131
end )
133
- |> Multi . run ( :update_meta , fn _ , % { update_content: update_content } ->
134
- ArticleOperation . update_meta ( update_content , :is_edited )
132
+ |> Multi . run ( :update_edit_status , fn _ , % { update_content: update_content } ->
133
+ ArticleOperation . update_edit_status ( update_content )
135
134
end )
136
135
|> Multi . run ( :update_tag , fn _ , _ ->
137
136
# TODO: move it to ArticleOperation moudel
@@ -400,10 +399,6 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
400
399
{ :error , [ message: "set community" , code: ecode ( :create_fails ) ] }
401
400
end
402
401
403
- defp create_content_result ( { :error , :set_meta , _result , _steps } ) do
404
- { :error , [ message: "set meta info" , code: ecode ( :create_fails ) ] }
405
- end
406
-
407
402
defp create_content_result ( { :error , :set_community_flag , _result , _steps } ) do
408
403
{ :error , [ message: "set community flag" , code: ecode ( :create_fails ) ] }
409
404
end
@@ -420,7 +415,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
420
415
{ :error , [ message: "log action" , code: ecode ( :create_fails ) ] }
421
416
end
422
417
423
- defp update_content_result ( { :ok , % { update_meta :result } } ) , do: { :ok , result }
418
+ defp update_content_result ( { :ok , % { update_edit_status :result } } ) , do: { :ok , result }
424
419
defp update_content_result ( { :error , :update_content , result , _steps } ) , do: { :error , result }
425
420
defp update_content_result ( { :error , :update_tag , result , _steps } ) , do: { :error , result }
426
421
@@ -429,12 +424,13 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
429
424
defp content_id ( :repo , id ) , do: % { repo_id: id }
430
425
431
426
# for create content step in Multi.new
432
- defp exec_create_content ( target , attrs , % Author { id: aid } , % Community { id: cid } ) do
427
+ defp do_create_content ( target , attrs , % Author { id: aid } , % Community { id: cid } ) do
433
428
target
434
429
|> struct ( )
435
430
|> target . changeset ( attrs )
436
431
|> Ecto.Changeset . put_change ( :author_id , aid )
437
432
|> Ecto.Changeset . put_change ( :origial_community_id , integerfy ( cid ) )
433
+ |> Ecto.Changeset . put_embed ( :meta , @ default_article_meta )
438
434
|> Repo . insert ( )
439
435
end
440
436