@@ -6,10 +6,13 @@ defmodule Helper.Converter.EditorToHTML.Validator do
6
6
alias Validator.Schema
7
7
alias Converter.EditorToHTML.Validator.EditorSchema
8
8
9
- # blocks with no children items
10
9
@ normal_blocks [ "header" , "paragraph" , "quote" ]
11
- # blocks with "items" fields
12
- @ complex_blocks [ "list" , "table" ]
10
+
11
+ # blocks with "items" fields (has many children item)
12
+ @ children_blocks [ "list" , "table" ]
13
+
14
+ # all the supported blocks
15
+ @ supported_blocks @ normal_blocks ++ @ children_blocks
13
16
14
17
@ spec is_valid ( map ) :: { :error , map } | { :ok , :pass }
15
18
def is_valid ( data ) when is_map ( data ) do
@@ -60,14 +63,18 @@ defmodule Helper.Converter.EditorToHTML.Validator do
60
63
61
64
# validate block which has mode and items
62
65
defp validate_block ( % { "type" => type , "data" => data } )
63
- when type in @ complex_blocks do
66
+ when type in @ children_blocks do
64
67
[ parent: parent_schema , item: item_schema ] = EditorSchema . get ( type )
65
68
validate_with ( type , parent_schema , item_schema , data )
66
69
end
67
70
68
- defp validate_block ( % { "type" => type } ) , do: raise ( "undown #{ type } block" )
71
+ defp validate_block ( % { "type" => type } ) do
72
+ raise ( "undown #{ type } block, supported blocks: #{ @ supported_blocks |> Enum . join ( " | " ) } " )
73
+ end
69
74
70
- defp validate_block ( e ) , do: raise ( "undown block: #{ e } " )
75
+ defp validate_block ( e ) do
76
+ raise ( "undown block: #{ e } , supported blocks: #{ @ supported_blocks |> Enum . join ( " | " ) } " )
77
+ end
71
78
72
79
# validate with given schema
73
80
defp validate_with ( block , schema , data ) do
0 commit comments