Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit 3d5e2d3

Browse files
committed
chore: wip
1 parent 61fdc89 commit 3d5e2d3

File tree

2 files changed

+50
-6
lines changed

2 files changed

+50
-6
lines changed

lib/groupher_server_web/schema.ex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ defmodule GroupherServerWeb.Schema do
44
"""
55
use Absinthe.Schema
66
# use ApolloTracing
7+
import GroupherServerWeb.Schema.Helper.Imports
78

89
alias GroupherServerWeb.Middleware, as: M
910
alias GroupherServerWeb.Schema.{Account, Billing, CMS, Delivery, Statistics, Helper}
@@ -38,11 +39,11 @@ defmodule GroupherServerWeb.Schema do
3839
import_types(CMS.Queries)
3940
import_types(CMS.Mutations.Community)
4041
import_types(CMS.Mutations.Operation)
41-
import_types(CMS.Mutations.Post)
42-
import_types(CMS.Mutations.Job)
43-
import_types(CMS.Mutations.Repo)
42+
4443
import_types(CMS.Mutations.Comment)
4544

45+
import_article_fields(:mutations, :module)
46+
4647
query do
4748
import_fields(:account_queries)
4849
import_fields(:billing_queries)
@@ -63,9 +64,8 @@ defmodule GroupherServerWeb.Schema do
6364
# cms
6465
import_fields(:cms_mutation_community)
6566
import_fields(:cms_opertion_mutations)
66-
import_fields(:cms_post_mutations)
67-
import_fields(:cms_job_mutations)
68-
import_fields(:cms_repo_mutations)
67+
68+
import_article_fields(:mutations)
6969

7070
import_fields(:cms_comment_mutations)
7171
end
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
defmodule GroupherServerWeb.Schema.Helper.Imports do
2+
@moduledoc """
3+
helper for import cms article related fields
4+
"""
5+
6+
import Helper.Utils, only: [get_config: 2]
7+
@article_threads get_config(:article, :threads)
8+
9+
alias GroupherServerWeb.Schema.{CMS}
10+
11+
@doc """
12+
import article fields based on @article_threads
13+
e.g:
14+
----
15+
import_types(:cms_post_mutations)
16+
import_types(:cms_job_mutations)
17+
# ...
18+
"""
19+
defmacro import_article_fields(:mutations) do
20+
@article_threads
21+
|> Enum.map(
22+
&quote do
23+
import_fields(unquote(:"cms_#{&1}_mutations"))
24+
end
25+
)
26+
end
27+
28+
@doc """
29+
import article fields based on @article_threads
30+
e.g:
31+
----
32+
import_types(CMS.Mutations.Post)
33+
import_types(CMS.Mutations.Job)
34+
# ...
35+
"""
36+
defmacro import_article_fields(:mutations, :module) do
37+
@article_threads
38+
|> Enum.map(
39+
&quote do
40+
import_types(unquote(Module.concat(CMS.Mutations, Recase.to_pascal(to_string(&1)))))
41+
end
42+
)
43+
end
44+
end

0 commit comments

Comments
 (0)