Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commitff03347

Browse files
authored
feat(drink-thread): basic workflow (#418)
* chore: remove length arg when create article* chore: setup schema* chore: tests* chore: fix test* chore: fix mock* chore: fix migration* chore: length issue* chore: length issue
1 parent57cb7ec commitff03347

File tree

55 files changed

+5300
-41
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+5300
-41
lines changed

‎config/config.exs‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ config :groupher_server, :article,
6969
min_length:10,
7070
max_length:20_000,
7171
# NOTE: do not change unless you know what you are doing
72-
threads:[:post,:job,:repo,:blog,:works,:radar,:guide,:meetup],
72+
threads:[:post,:job,:repo,:blog,:works,:radar,:guide,:meetup,:drink],
7373
# in this period, paged articles will sort front if non-article-author commented
7474
# 在此时间段内,一旦有非文章作者的用户评论,该文章就会排到前面
7575
active_period_days:%{
@@ -80,7 +80,8 @@ config :groupher_server, :article,
8080
works:10,
8181
radar:10,
8282
guide:10,
83-
meetup:10
83+
meetup:10,
84+
drink:10
8485
},
8586

8687
# NOTE: if you want to add/remove emotion, just edit the list below

‎lib/groupher_server/cms/delegates/article_curd.ex‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
526526
defpresult({:ok,%{set_viewer_has_states:result}}),do:result|>done()
527527
defpresult({:ok,%{update_article_meta:result}}),do:{:ok,result}
528528

529-
defpresult({:error,:create_article,_result,_steps})do
529+
defpresult({:error,:create_article,result,_steps})do
530530
{:error,[message:"create article",code:ecode(:create_fails)]}
531531
end
532532

‎lib/groupher_server/cms/models/blog.ex‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@ defmodule GroupherServer.CMS.Model.Blog do
1515

1616
@required_fields~w(title digest)a
1717
@article_cast_fieldsgeneral_article_cast_fields()
18-
@optional_fields~w(link_addr digest length)a++@article_cast_fields
18+
@optional_fields~w(link_addr digest)a++@article_cast_fields
1919

2020
@typet::%Blog{}
2121
schema"cms_blogs"do
2222
field(:link_addr,:string)
23-
field(:length,:integer)
2423

2524
article_tags_field(:blog)
2625
article_communities_field(:blog)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
defmoduleGroupherServer.CMS.Model.Drinkdo
2+
@moduledocfalse
3+
alias__MODULE__
4+
5+
useEcto.Schema
6+
useAccessible
7+
8+
importEcto.Changeset
9+
importGroupherServer.CMS.Helper.Macros
10+
11+
aliasGroupherServer.CMS
12+
aliasCMS.Model.Embeds
13+
14+
@timestamps_opts[type::utc_datetime_usec]
15+
16+
@required_fields~w(title digest)a
17+
@article_cast_fieldsgeneral_article_cast_fields()
18+
@optional_fields@article_cast_fields
19+
20+
@typet::%Drink{}
21+
schema"cms_drinks"do
22+
article_tags_field(:drink)
23+
article_communities_field(:drink)
24+
general_article_fields(:drink)
25+
end
26+
27+
@docfalse
28+
defchangeset(%Drink{}=drink,attrs)do
29+
drink
30+
|>cast(attrs,@optional_fields++@required_fields)
31+
|>validate_required(@required_fields)
32+
|>cast_embed(:meta,required:false,with:&Embeds.ArticleMeta.changeset/2)
33+
|>generl_changeset
34+
end
35+
36+
@docfalse
37+
defupdate_changeset(%Drink{}=drink,attrs)do
38+
drink
39+
|>cast(attrs,@optional_fields++@required_fields)
40+
|>generl_changeset
41+
end
42+
43+
defpgenerl_changeset(changeset)do
44+
changeset
45+
|>validate_length(:title,min:3,max:50)
46+
|>cast_embed(:emotions,with:&Embeds.ArticleEmotion.changeset/2)
47+
end
48+
end
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
defmoduleGroupherServer.CMS.Model.DrinkDocumentdo
2+
@moduledoc"""
3+
mainly for full-text search
4+
"""
5+
alias__MODULE__
6+
7+
useEcto.Schema
8+
useAccessible
9+
10+
importEcto.Changeset
11+
importHelper.Utils,only:[get_config:2]
12+
13+
aliasGroupherServer.CMS
14+
aliasCMS.Model.Drink
15+
16+
@timestamps_opts[type::utc_datetime_usec]
17+
18+
@max_body_lengthget_config(:article,:max_length)
19+
@min_body_lengthget_config(:article,:min_length)
20+
21+
@required_fields~w(body body_html drink_id)a
22+
@optional_fields[]
23+
24+
@typet::%DrinkDocument{}
25+
schema"drink_documents"do
26+
belongs_to(:drink,Drink,foreign_key::drink_id)
27+
28+
field(:body,:string)
29+
field(:body_html,:string)
30+
field(:toc,:map)
31+
end
32+
33+
@docfalse
34+
defchangeset(%DrinkDocument{}=drink,attrs)do
35+
drink
36+
|>cast(attrs,@optional_fields++@required_fields)
37+
|>validate_required(@required_fields)
38+
|>validate_length(:body,min:@min_body_length,max:@max_body_length)
39+
end
40+
41+
@docfalse
42+
defupdate_changeset(%DrinkDocument{}=drink,attrs)do
43+
drink
44+
|>cast(attrs,@optional_fields++@required_fields)
45+
|>validate_length(:body,min:@min_body_length,max:@max_body_length)
46+
end
47+
end

‎lib/groupher_server/cms/models/job.ex‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ defmodule GroupherServer.CMS.Model.Job do
1212
aliasCMS.Model.Embeds
1313

1414
@timestamps_opts[type::utc_datetime_usec]
15-
@required_fields~w(title company digest length)a
15+
@required_fields~w(title company digest)a
1616
@article_cast_fieldsgeneral_article_cast_fields()
1717
@optional_fields@article_cast_fields++~w(desc company_link link_addr copy_right)a
1818

@@ -24,7 +24,6 @@ defmodule GroupherServer.CMS.Model.Job do
2424

2525
field(:link_addr,:string)
2626
field(:copy_right,:string)
27-
field(:length,:integer)
2827

2928
article_tags_field(:job)
3029
article_communities_field(:job)

‎lib/groupher_server/cms/models/post.ex‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ defmodule GroupherServer.CMS.Model.Post do
1515

1616
@timestamps_opts[type::utc_datetime_usec]
1717

18-
@required_fields~w(title digest length)a
18+
@required_fields~w(title digest)a
1919
@article_cast_fieldsgeneral_article_cast_fields()
2020
@optional_fields~w(link_addr copy_right is_question is_solved solution_digest)a++
2121
@article_cast_fields
@@ -24,7 +24,6 @@ defmodule GroupherServer.CMS.Model.Post do
2424
schema"cms_posts"do
2525
field(:link_addr,:string)
2626
field(:copy_right,:string)
27-
field(:length,:integer)
2827

2928
field(:is_question,:boolean,default:false)
3029
field(:is_solved,:boolean,default:false)

‎lib/groupher_server_web/schema/Helper/fields.ex‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ defmodule GroupherServerWeb.Schema.Helper.Fields do
168168
defmacroarticle_filter_fieldsdo
169169
quotedo
170170
field(:when,:when_enum)
171-
field(:length,:length_enum)
172171
field(:article_tag,:string)
173172
field(:article_tags,list_of(:string))
174173
field(:community,:string)

‎lib/groupher_server_web/schema/cms/cms_metrics.ex‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ defmodule GroupherServerWeb.Schema.CMS.Metrics do
161161
# field(:sort, :sort_input)
162162
field(:when,:when_enum)
163163
field(:sort,:sort_enum)
164-
field(:length,:length_enum)
165164
# @desc "Matching a tag"
166165
# @desc "Added to the menu after this date"
167166
# field(:added_after, :datetime)
@@ -226,6 +225,13 @@ defmodule GroupherServerWeb.Schema.CMS.Metrics do
226225
field(:sort,:sort_enum)
227226
end
228227

228+
@desc"drink_filter doc"
229+
input_object:paged_drinks_filterdo
230+
pagination_args()
231+
article_filter_fields()
232+
field(:sort,:sort_enum)
233+
end
234+
229235
@desc"article_filter doc"
230236
input_object:paged_repos_filterdo
231237
@desc"limit of records (default 20), if first > 30, only return 30 at most"

‎lib/groupher_server_web/schema/cms/cms_types.ex‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ defmodule GroupherServerWeb.Schema.CMS.Types do
5858
general_article_fields()
5959
comments_fields()
6060

61-
field(:length,:integer)
6261
field(:link_addr,:string)
6362
field(:copy_right,:string)
6463

@@ -74,7 +73,6 @@ defmodule GroupherServerWeb.Schema.CMS.Types do
7473
field(:desc,:string)
7574
field(:company,:string)
7675
field(:company_link,:string)
77-
field(:length,:integer)
7876
field(:link_addr,:string)
7977
field(:copy_right,:string)
8078

@@ -87,7 +85,6 @@ defmodule GroupherServerWeb.Schema.CMS.Types do
8785
general_article_fields()
8886
comments_fields()
8987

90-
field(:length,:integer)
9188
field(:link_addr,:string)
9289

9390
timestamp_fields(:article)
@@ -99,7 +96,6 @@ defmodule GroupherServerWeb.Schema.CMS.Types do
9996
general_article_fields()
10097
comments_fields()
10198

102-
field(:length,:integer)
10399
field(:link_addr,:string)
104100

105101
timestamp_fields(:article)
@@ -111,7 +107,6 @@ defmodule GroupherServerWeb.Schema.CMS.Types do
111107
general_article_fields()
112108
comments_fields()
113109

114-
field(:length,:integer)
115110
field(:link_addr,:string)
116111

117112
timestamp_fields(:article)
@@ -123,7 +118,6 @@ defmodule GroupherServerWeb.Schema.CMS.Types do
123118
general_article_fields()
124119
comments_fields()
125120

126-
field(:length,:integer)
127121
field(:link_addr,:string)
128122

129123
timestamp_fields(:article)
@@ -135,8 +129,14 @@ defmodule GroupherServerWeb.Schema.CMS.Types do
135129
general_article_fields()
136130
comments_fields()
137131

138-
field(:length,:integer)
139-
field(:link_addr,:string)
132+
timestamp_fields(:article)
133+
end
134+
135+
object:drinkdo
136+
interface(:article)
137+
138+
general_article_fields()
139+
comments_fields()
140140

141141
timestamp_fields(:article)
142142
end

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp