ecoportal-api-graphql 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/CHANGELOG.md +46 -7
  4. data/ecoportal-api-graphql.gemspec +1 -1
  5. data/lib/ecoportal/api/common/graphql/client.rb +2 -1
  6. data/lib/ecoportal/api/common/graphql/query_integration.rb +5 -5
  7. data/lib/ecoportal/api/common.graphql.rb +1 -1
  8. data/lib/ecoportal/api/graphql/base/action.rb +1 -1
  9. data/lib/ecoportal/api/graphql/base/action_category.rb +1 -1
  10. data/lib/ecoportal/api/graphql/base/contractor_entity.rb +1 -1
  11. data/lib/ecoportal/api/graphql/base/date_time.rb +1 -1
  12. data/lib/ecoportal/api/graphql/base/field.rb +1 -1
  13. data/lib/ecoportal/api/graphql/base/file_attachment.rb +1 -1
  14. data/lib/ecoportal/api/graphql/base/file_container.rb +1 -1
  15. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +1 -1
  16. data/lib/ecoportal/api/graphql/base/location_node.rb +3 -5
  17. data/lib/ecoportal/api/graphql/base/location_structure/draft/structure.rb +37 -0
  18. data/lib/ecoportal/api/graphql/base/location_structure/draft.rb +89 -0
  19. data/lib/ecoportal/api/graphql/base/location_structure.rb +9 -5
  20. data/lib/ecoportal/api/graphql/base/organization.rb +1 -1
  21. data/lib/ecoportal/api/graphql/base/page.rb +1 -1
  22. data/lib/ecoportal/api/graphql/base/page_info.rb +1 -1
  23. data/lib/ecoportal/api/graphql/base/person_member.rb +1 -1
  24. data/lib/ecoportal/api/graphql/base/resource.rb +1 -1
  25. data/lib/ecoportal/api/graphql/builder/action.rb +3 -3
  26. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +3 -3
  27. data/lib/ecoportal/api/graphql/builder/location_structure/draft.rb +64 -0
  28. data/lib/ecoportal/api/graphql/builder/location_structure.rb +9 -3
  29. data/lib/ecoportal/api/graphql/connection/action.rb +2 -2
  30. data/lib/ecoportal/api/graphql/connection/action_category.rb +2 -2
  31. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +2 -2
  32. data/lib/ecoportal/api/graphql/connection/person_member.rb +2 -2
  33. data/lib/ecoportal/api/graphql/error/locations_error/fetch_nested.rb +49 -0
  34. data/lib/ecoportal/api/graphql/error/locations_error.rb +15 -4
  35. data/lib/ecoportal/api/graphql/error/locations_validation_error.rb +5 -1
  36. data/lib/ecoportal/api/graphql/error/validation_errors.rb +5 -1
  37. data/lib/ecoportal/api/graphql/fragment/location_draft.rb +39 -0
  38. data/lib/ecoportal/api/graphql/fragment/locations_error.rb +18 -0
  39. data/lib/ecoportal/api/graphql/fragment.rb +4 -2
  40. data/lib/ecoportal/api/graphql/input/action/archive.rb +1 -2
  41. data/lib/ecoportal/api/graphql/input/action/create.rb +1 -1
  42. data/lib/ecoportal/api/graphql/input/contractor_entity/create.rb +1 -1
  43. data/lib/ecoportal/api/graphql/input/contractor_entity/destroy.rb +1 -2
  44. data/lib/ecoportal/api/graphql/input/contractor_entity/update.rb +1 -1
  45. data/lib/ecoportal/api/graphql/input/id_diff.rb +1 -1
  46. data/lib/ecoportal/api/graphql/input/location_structure/apply_commands.rb +2 -3
  47. data/lib/ecoportal/api/graphql/input/location_structure/archive_command.rb +1 -1
  48. data/lib/ecoportal/api/graphql/input/location_structure/delete_command.rb +1 -1
  49. data/lib/ecoportal/api/graphql/input/location_structure/draft/add_commands.rb +49 -0
  50. data/lib/ecoportal/api/graphql/input/location_structure/draft/create.rb +15 -0
  51. data/lib/ecoportal/api/graphql/input/location_structure/draft/delete.rb +15 -0
  52. data/lib/ecoportal/api/graphql/input/location_structure/draft/drop_bad_commands.rb +16 -0
  53. data/lib/ecoportal/api/graphql/input/location_structure/draft/publish.rb +16 -0
  54. data/lib/ecoportal/api/graphql/input/location_structure/draft.rb +19 -0
  55. data/lib/ecoportal/api/graphql/input/location_structure/insert_command.rb +1 -1
  56. data/lib/ecoportal/api/graphql/input/location_structure/move_command.rb +1 -1
  57. data/lib/ecoportal/api/graphql/input/location_structure/reorder_command.rb +1 -1
  58. data/lib/ecoportal/api/graphql/input/location_structure/unarchive_command.rb +1 -1
  59. data/lib/ecoportal/api/graphql/input/location_structure/update_command.rb +1 -1
  60. data/lib/ecoportal/api/graphql/input/location_structure.rb +1 -1
  61. data/lib/ecoportal/api/graphql/input/search.rb +1 -1
  62. data/lib/ecoportal/api/graphql/input/search_filter.rb +1 -1
  63. data/lib/ecoportal/api/graphql/input/search_sorter.rb +1 -1
  64. data/lib/ecoportal/api/graphql/interface/base_page.rb +2 -2
  65. data/lib/ecoportal/api/graphql/{input/location_structure/command_interface.rb → interface/location_structure/command.rb} +9 -5
  66. data/lib/ecoportal/api/graphql/interface/location_structure/node.rb +43 -0
  67. data/lib/ecoportal/api/graphql/interface/location_structure/nodes.rb +28 -0
  68. data/lib/ecoportal/api/graphql/interface/location_structure.rb +14 -0
  69. data/lib/ecoportal/api/graphql/interface.rb +1 -1
  70. data/lib/ecoportal/api/graphql/logic/base_model.rb +13 -0
  71. data/lib/ecoportal/api/graphql/logic/base_query.rb +31 -9
  72. data/lib/ecoportal/api/graphql/logic/connection.rb +2 -2
  73. data/lib/ecoportal/api/graphql/logic/input.rb +11 -0
  74. data/lib/ecoportal/api/graphql/logic/mutation.rb +6 -11
  75. data/lib/ecoportal/api/graphql/logic/payload.rb +16 -3
  76. data/lib/ecoportal/api/graphql/logic/query.rb +1 -1
  77. data/lib/ecoportal/api/graphql/logic/query_array.rb +1 -1
  78. data/lib/ecoportal/api/graphql/logic/query_connection.rb +6 -6
  79. data/lib/ecoportal/api/graphql/logic.rb +2 -0
  80. data/lib/ecoportal/api/graphql/model/account.rb +1 -1
  81. data/lib/ecoportal/api/graphql/model/action.rb +1 -1
  82. data/lib/ecoportal/api/graphql/model/contractor_entity.rb +1 -1
  83. data/lib/ecoportal/api/graphql/model/field.rb +1 -1
  84. data/lib/ecoportal/api/graphql/model/file_attachment.rb +1 -1
  85. data/lib/ecoportal/api/graphql/model/file_container.rb +2 -2
  86. data/lib/ecoportal/api/graphql/model/location_node.rb +3 -5
  87. data/lib/ecoportal/api/graphql/model/location_structure/draft/structure.rb +15 -0
  88. data/lib/ecoportal/api/graphql/model/location_structure/draft.rb +15 -0
  89. data/lib/ecoportal/api/graphql/model/location_structure.rb +5 -1
  90. data/lib/ecoportal/api/graphql/model/organization.rb +26 -9
  91. data/lib/ecoportal/api/graphql/model/page.rb +1 -1
  92. data/lib/ecoportal/api/graphql/model/person_member.rb +2 -2
  93. data/lib/ecoportal/api/graphql/model/resource.rb +1 -1
  94. data/lib/ecoportal/api/graphql/model/user.rb +1 -1
  95. data/lib/ecoportal/api/graphql/mutation/action/archive.rb +3 -3
  96. data/lib/ecoportal/api/graphql/mutation/action/create.rb +3 -3
  97. data/lib/ecoportal/api/graphql/mutation/action/update.rb +3 -3
  98. data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +3 -3
  99. data/lib/ecoportal/api/graphql/mutation/contractor_entity/destroy.rb +3 -3
  100. data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +9 -16
  101. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +55 -0
  102. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +54 -0
  103. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/delete.rb +43 -0
  104. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +56 -0
  105. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +66 -0
  106. data/lib/ecoportal/api/graphql/mutation/location_structure/draft.rb +18 -0
  107. data/lib/ecoportal/api/graphql/mutation/location_structure.rb +1 -0
  108. data/lib/ecoportal/api/graphql/payload/action/archive.rb +1 -1
  109. data/lib/ecoportal/api/graphql/payload/action/create.rb +1 -1
  110. data/lib/ecoportal/api/graphql/payload/action/update.rb +1 -1
  111. data/lib/ecoportal/api/graphql/payload/contractor_entity/create.rb +1 -1
  112. data/lib/ecoportal/api/graphql/payload/contractor_entity/destroy.rb +1 -1
  113. data/lib/ecoportal/api/graphql/payload/contractor_entity/update.rb +1 -1
  114. data/lib/ecoportal/api/graphql/payload/location_structure/apply_commands.rb +32 -9
  115. data/lib/ecoportal/api/graphql/payload/location_structure/command_execution_result.rb +26 -3
  116. data/lib/ecoportal/api/graphql/payload/location_structure/draft/add_commands.rb +27 -0
  117. data/lib/ecoportal/api/graphql/payload/location_structure/draft/create.rb +34 -0
  118. data/lib/ecoportal/api/graphql/payload/location_structure/draft/delete.rb +27 -0
  119. data/lib/ecoportal/api/graphql/payload/location_structure/draft/drop_bad_commands.rb +41 -0
  120. data/lib/ecoportal/api/graphql/payload/location_structure/draft/publish.rb +56 -0
  121. data/lib/ecoportal/api/graphql/payload/location_structure/draft.rb +18 -0
  122. data/lib/ecoportal/api/graphql/payload/location_structure.rb +1 -1
  123. data/lib/ecoportal/api/graphql/query/action.rb +2 -2
  124. data/lib/ecoportal/api/graphql/query/action_categories.rb +3 -3
  125. data/lib/ecoportal/api/graphql/query/actions.rb +3 -3
  126. data/lib/ecoportal/api/graphql/query/contractor_entities.rb +3 -3
  127. data/lib/ecoportal/api/graphql/query/location_classifications.rb +2 -2
  128. data/lib/ecoportal/api/graphql/query/location_structure/draft.rb +62 -0
  129. data/lib/ecoportal/api/graphql/query/location_structure.rb +17 -4
  130. data/lib/ecoportal/api/graphql/query/location_structures.rb +5 -3
  131. data/lib/ecoportal/api/graphql.rb +14 -14
  132. data/lib/ecoportal/api/graphql_version.rb +1 -1
  133. metadata +37 -8
  134. data/lib/ecoportal/api/graphql/base_model.rb +0 -11
  135. data/lib/ecoportal/api/graphql/interface/location_node.rb +0 -39
  136. data/lib/ecoportal/api/graphql/payload/location_structure/command_interface.rb +0 -14
@@ -0,0 +1,14 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Interface
5
+ module LocationStructure
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require_relative 'location_structure/node'
13
+ require_relative 'location_structure/nodes'
14
+ require_relative 'location_structure/command'
@@ -7,5 +7,5 @@ module Ecoportal
7
7
  end
8
8
  end
9
9
 
10
- require_relative 'interface/location_node'
10
+ require_relative 'interface/location_structure'
11
11
  require_relative 'interface/base_page'
@@ -0,0 +1,13 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Logic
5
+ class BaseModel < Ecoportal::API::Common::GraphQL::Model
6
+ class << self
7
+ attr_accessor :client
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -4,8 +4,16 @@ module Ecoportal
4
4
  module Logic
5
5
  class BaseQuery
6
6
  include Ecoportal::API::Common::GraphQL::ClassHelpers
7
+
7
8
  inheritable_attrs :accepted_params, :param_defaults
8
9
 
10
+ DETAIL_ERRORS = [
11
+ Faraday::ParsingError,
12
+ Graphlient::Errors::FaradayServerError,
13
+ Graphlient::Errors::GraphQLError,
14
+ Graphlient::Errors::ClientError
15
+ ].freeze
16
+
9
17
  class << self
10
18
  def param_defaults
11
19
  @param_defaults ||= {}
@@ -40,14 +48,16 @@ module Ecoportal
40
48
 
41
49
  @field_name = nil
42
50
  @field_name = str.to_s if str
51
+ @field_name
43
52
  end
44
53
 
45
54
  def base_path(path = :unused)
46
55
  return @base_path if path == :unused
47
56
 
48
57
  path ||= []
49
- path = path.to_s.split('.') if path.is_a?(String)
50
- path = path.map(&:to_s).compact
58
+ path = path.to_s.split('.') if path.is_a?(String)
59
+ path = path.map(&:to_s).compact
60
+
51
61
  @base_path = path
52
62
  end
53
63
  end
@@ -73,9 +83,16 @@ module Ecoportal
73
83
 
74
84
  # Query rely that manages the different blocks.
75
85
  # @return [Class] an object of `response_class` with the results hanging from `path`.
76
- def query(path: self.path, **kargs, &block)
77
- benchmarking("#{self.class}##{__method__}", print: true) do
78
- graphql_query(path: path, **kargs, &basic_block(&block))
86
+ def query(path: self.path, raw_response: {}, **kargs, &block)
87
+ print = !is_a?(Mutation)
88
+
89
+ benchmarking("#{self.class}##{__method__}", print: print) do
90
+ graphql_query(
91
+ path: path,
92
+ raw_response: raw_response,
93
+ **kargs,
94
+ &basic_block(&block)
95
+ )
79
96
  end
80
97
  end
81
98
 
@@ -98,11 +115,14 @@ module Ecoportal
98
115
  query_params = self.class.slice_params(default_params.merge(kargs))
99
116
 
100
117
  request(*path) do
101
- raw_response[:data] = client.query(query_params, &block)
118
+ client.query(**query_params, &block).tap do |response|
119
+ raw_response[:data] = response
120
+ end
102
121
  end
103
- rescue Faraday::ParsingError, Graphlient::Errors::GraphQLError => _err
104
- puts "Internal Error with these params:"
122
+ rescue *DETAIL_ERRORS => _err
105
123
  pp kargs
124
+ puts "Internal Error with these params:\n"
125
+ pp query_params
106
126
  pp block
107
127
  raise
108
128
  end
@@ -113,7 +133,9 @@ module Ecoportal
113
133
  end
114
134
 
115
135
  def wrap_response(response, path = [])
116
- unless (res = response.to_h.dig(*path.dup.unshift("data")))
136
+ # we use the Hash, because fragments are persmissioned
137
+ # see Use of Fragments at https://github.com/ashkan18/graphlient/tree/master?tab=readme-ov-file#use-of-fragments
138
+ unless (res = response.to_h.dig(*path.dup.unshift('data')))
117
139
  msg = "Complete failure on request. Path: #{path}\n#{response.to_h.pretty_inspect}"
118
140
  raise msg
119
141
  end
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Logic
5
- class Connection < Ecoportal::API::GraphQL::BaseModel
5
+ class Connection < Logic::BaseModel
6
6
  class GenericNode
7
7
  def initialize(*_args, **_kargs)
8
8
  raise "Missuse error. You should define a node_class for a class that inherits from GraphqlConnection class."
@@ -16,7 +16,7 @@ module Ecoportal
16
16
  passthrough :edges
17
17
  passthrough :totalCount
18
18
  embeds_many :nodes, klass: :node_class
19
- embeds_one :pageInfo, klass: Ecoportal::API::GraphQL::Base::PageInfo
19
+ embeds_one :pageInfo, klass: Base::PageInfo
20
20
 
21
21
  def empty?
22
22
  count < 1
@@ -0,0 +1,11 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Logic
5
+ class Input < Logic::BaseModel
6
+ passthrough :clientMutationId
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Logic
5
- class Mutation < Ecoportal::API::GraphQL::Logic::BaseQuery
5
+ class Mutation < Logic::BaseQuery
6
6
  class GenericPayload
7
7
  def initialize(*_args, **_kargs)
8
8
  raise 'Missuse error. You should define a payload_class for a class that inherits from Mutation class.'
@@ -18,17 +18,12 @@ module Ecoportal
18
18
  class_resolver :payload_class, GenericPayload
19
19
  class_resolver :input_class, GenericInput
20
20
 
21
+ accepted_params :input
22
+
21
23
  # Query rely that manages the different blocks.
22
24
  # @return [Class] an object of `response_class` with the results hanving from `path`.
23
- def query(input:, path: self.path, &block)
24
- request(*path) do
25
- client.query(input: as_input(input), &basic_block(&block))
26
- end
27
- rescue Faraday::ParsingError, Graphlient::Errors::FaradayServerError => _err
28
- puts "Internal Error with these input ('#{input.class}'):"
29
- pp input
30
- raise
31
- # rescue Graphlient::Errors::TimeoutError => _err
25
+ def query(input:, path: self.path, **kargs, &block)
26
+ super(input: as_input(input), path: path, **kargs, &block)
32
27
  end
33
28
 
34
29
  def response_class
@@ -39,7 +34,7 @@ module Ecoportal
39
34
 
40
35
  def as_input(value)
41
36
  case value
42
- when input_class, Ecoportal::API::GraphQL::BaseModel
37
+ when input_class, Logic::BaseModel
43
38
  value.as_input
44
39
  when Hash
45
40
  value
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Logic
5
- class Payload < Ecoportal::API::GraphQL::BaseModel
5
+ class Payload < Logic::BaseModel
6
6
  class GenericItem
7
7
  def initialize(*_args, **_kargs)
8
8
  raise "Missuse error. You should define a item_class for a class that inherits from GraphqlPayload class."
@@ -14,11 +14,24 @@ module Ecoportal
14
14
  passthrough :clientMutationId
15
15
 
16
16
  class_resolver :item_class, GenericItem
17
+
17
18
  embeds_one :item, klass: :item_class
18
- embeds_one :errors, klass: Ecoportal::API::GraphQL::Error::ValidationErrors, nullable: true
19
+ embeds_one :errors, klass: Error::ValidationErrors, nullable: true
20
+
21
+ def error?
22
+ errors && !errors.empty?
23
+ end
19
24
 
20
25
  def success?
21
- !errors || errors.empty?
26
+ !error?
27
+ end
28
+
29
+ def error_doc
30
+ return unless (err_doc = errors&.doc)
31
+
32
+ {
33
+ validationErrors: err_doc
34
+ }
22
35
  end
23
36
  end
24
37
  end
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Logic
5
- class Query < Ecoportal::API::GraphQL::Logic::BaseQuery
5
+ class Query < Logic::BaseQuery
6
6
  class GenericItem
7
7
  def initialize(*_args, **_kargs)
8
8
  msg = "Missuse error. "
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Logic
5
- class QueryArray < Ecoportal::API::GraphQL::Logic::Query
5
+ class QueryArray < Logic::Query
6
6
  include Enumerable
7
7
 
8
8
  def each(item_block: nil, **kargs, &block)
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Logic
5
- class QueryConnection < Ecoportal::API::GraphQL::Logic::Query
5
+ class QueryConnection < Logic::Query
6
6
  accepted_params :searchConf, :after, :before, :first, :last
7
7
  include Enumerable
8
8
 
@@ -27,17 +27,17 @@ module Ecoportal
27
27
 
28
28
  @response_class ||= self.class.new_class(
29
29
  item_class,
30
- inherits: Ecoportal::API::GraphQL::Logic::Connection,
30
+ inherits: Logic::Connection,
31
31
  namespace: "Ecoportal::API::GraphQL::Connection"
32
32
  ) do |klass|
33
33
  klass.item_class = item_class
34
34
  end
35
+ end
35
36
 
36
- privae
37
+ private
37
38
 
38
- def default_connection_block
39
- raise 'You should defined this method'
40
- end
39
+ def default_connection_block
40
+ raise 'You should defined this method'
41
41
  end
42
42
  end
43
43
  end
@@ -7,6 +7,7 @@ module Ecoportal
7
7
  end
8
8
  end
9
9
 
10
+ require 'ecoportal/api/graphql/logic/base_model'
10
11
  require 'ecoportal/api/graphql/logic/base_query'
11
12
  require 'ecoportal/api/graphql/logic/query'
12
13
  require 'ecoportal/api/graphql/logic/mutation'
@@ -14,3 +15,4 @@ require 'ecoportal/api/graphql/logic/connection'
14
15
  require 'ecoportal/api/graphql/logic/query_array'
15
16
  require 'ecoportal/api/graphql/logic/query_connection'
16
17
  require 'ecoportal/api/graphql/logic/payload'
18
+ require 'ecoportal/api/graphql/logic/input'
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class Account < Ecoportal::API::GraphQL::BaseModel
5
+ class Account < Logic::BaseModel
6
6
  root!
7
7
 
8
8
  passkey :id
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class Action < Ecoportal::API::GraphQL::Base::Action
5
+ class Action < Base::Action
6
6
  embeds_one :actionCategory, klass: GraphQL::Base::ActionCategory
7
7
  embeds_many :assignedTo, klass: Model::PersonMember
8
8
  embeds_one :creator, klass: Model::PersonMember
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class ContractorEntity < Ecoportal::API::GraphQL::Base::ContractorEntity
5
+ class ContractorEntity < Base::ContractorEntity
6
6
  embeds_one :associatedPeople, read_only: true, klass: "Ecoportal::API::GraphQL::Connections::PersonMemberConnection"
7
7
  embeds_many :leadContractors, read_only: true, klass: "Ecoportal::API::GraphQL::Model::PersonMember"
8
8
  end
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class Field < Ecoportal::API::GraphQL::Base::Field
5
+ class Field < Base::Field
6
6
  end
7
7
  end
8
8
  end
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class FileAttachment < Ecoportal::API::GraphQL::Base::FileAttachment
5
+ class FileAttachment < Base::FileAttachment
6
6
  end
7
7
  end
8
8
  end
@@ -2,8 +2,8 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class FileContainer < Ecoportal::API::GraphQL::Base::FileContainer
6
- embeds_many :fileAttachments, klass: Ecoportal::API::GraphQL::Model::FileAttachment
5
+ class FileContainer < Base::FileContainer
6
+ embeds_many :fileAttachments, klass: Model::FileAttachment
7
7
  end
8
8
  end
9
9
  end
@@ -2,13 +2,11 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class LocationNode < Ecoportal::API::GraphQL::Base::LocationNode
5
+ class LocationNode < Base::LocationNode
6
+ class_resolver :location_node_class, self
7
+
6
8
  # embeds_one :structure, klass: 'Model::LocationStructure'
7
9
  # embeds_one :enabledLocationCode, klass: 'Model::LocationCode'
8
-
9
- embeds_one :parent, klass: self, nullable: true
10
- embeds_many :ancestors, klass: self, read_only: true
11
- embeds_many :children, klass: self, read_only: true
12
10
  end
13
11
  end
14
12
  end
@@ -0,0 +1,15 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Model
5
+ class LocationStructure
6
+ class Draft
7
+ class Structure < Base::LocationStructure::Draft::Structure
8
+ class_resolver :location_node_class, Model::LocationNode
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Model
5
+ class LocationStructure
6
+ class Draft < Base::LocationStructure::Draft
7
+ class_resolver :structure_class, "Ecoportal::API::GraphQL::Model::LocationStructure::Draft::Structure"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ require_relative 'draft/structure'
@@ -3,10 +3,14 @@ module Ecoportal
3
3
  class GraphQL
4
4
  module Model
5
5
  class LocationStructure < Ecoportal::API::GraphQL::Base::LocationStructure
6
- embeds_many :nodes, klass: Model::LocationNode, order_key: :weight
6
+ class_resolver :location_node_class, Model::LocationNode
7
+ class_resolver :draft_class, "Model::LocationStructure::Draft"
8
+
7
9
  embeds_one :lastUpdatedBy, klass: "Ecoportal::API::GraphQL::Model::User"
8
10
  end
9
11
  end
10
12
  end
11
13
  end
12
14
  end
15
+
16
+ require_relative 'location_structure/draft'
@@ -1,9 +1,11 @@
1
+ # rubocop:disable Layout/ArgumentAlignment
2
+
1
3
  module Ecoportal
2
4
  module API
3
5
  class GraphQL
4
6
  module Model
5
- class Organization < Ecoportal::API::GraphQL::Base::Organization
6
- DEFAULT_PATH = ["currentOrganization"].freeze
7
+ class Organization < Base::Organization
8
+ DEFAULT_PATH = ['currentOrganization'].freeze
7
9
 
8
10
  class << self
9
11
  extend Ecoportal::API::Common::GraphQL::QueryIntegration
@@ -12,14 +14,27 @@ module Ecoportal
12
14
  DEFAULT_PATH.dup.push(*add)
13
15
  end
14
16
 
15
- query :locationStructure, subpath: "locations", query_klass: "Ecoportal::API::GraphQL::Query::LocationStructure"
16
- query :locationStructures, subpath: "locations", query_klass: "Ecoportal::API::GraphQL::Query::LocationStructures"
17
- query :contractorEntities, query_klass: "Ecoportal::API::GraphQL::Query::ContractorEntities"
17
+ query :locationStructure,
18
+ subpath: 'locations',
19
+ query_klass: 'Ecoportal::API::GraphQL::Query::LocationStructure'
20
+ query :locationStructures,
21
+ subpath: 'locations',
22
+ query_klass: 'Ecoportal::API::GraphQL::Query::LocationStructures'
23
+ query :locationDraftById,
24
+ subpath: %w[locations structure],
25
+ query_klass: 'Ecoportal::API::GraphQL::Query::LocationStructure::Draft'
26
+
27
+ query :contractorEntities,
28
+ query_klass: 'Ecoportal::API::GraphQL::Query::ContractorEntities'
18
29
  #contractorEntity,
19
- query :actionCategories, query_klass: "Ecoportal::API::GraphQL::Query::ActionCategories"
20
- query :action, query_klass: "Ecoportal::API::GraphQL::Query::Action"
21
- query :actions, query_klass: "Ecoportal::API::GraphQL::Query::Actions"
22
- query :archiveAction, query_klass: "Ecoportal::API::GraphQL::Mutation::Action::Archive"
30
+ query :actionCategories,
31
+ query_klass: 'Ecoportal::API::GraphQL::Query::ActionCategories'
32
+ query :action,
33
+ query_klass: 'Ecoportal::API::GraphQL::Query::Action'
34
+ query :actions,
35
+ query_klass: 'Ecoportal::API::GraphQL::Query::Actions'
36
+ query :archiveAction,
37
+ query_klass: 'Ecoportal::API::GraphQL::Mutation::Action::Archive'
23
38
  #action, actionsByPage, actionsCounter
24
39
  #actionCategories
25
40
 
@@ -33,3 +48,5 @@ module Ecoportal
33
48
  end
34
49
  end
35
50
  end
51
+
52
+ # rubocop:enable Layout/ArgumentAlignment
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class Page < Ecoportal::API::GraphQL::Base::Page
5
+ class Page < Base::Page
6
6
  class_resolver :user_class, 'Ecoportal::API::GraphQL::Model::User'
7
7
  # class_resolver :force_class, 'Ecoportal::API::GraphQL::Model::Force'
8
8
  # class_resolver :theme_class, 'Ecoportal::API::GraphQL::Model::Theme'
@@ -2,9 +2,9 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class PersonMember < Ecoportal::API::GraphQL::Base::PersonMember
5
+ class PersonMember < Base::PersonMember
6
6
  embeds_one :contractorOrganization, klass: "Ecoportal::API::GraphQL::Model::ContractorEntity"
7
- embeds_one :account, klass: Ecoportal::API::GraphQL::Model::Account
7
+ embeds_one :account, klass: Model::Account
8
8
 
9
9
  # embeds_many :privateFields, enum_class: Ecoportal::API::GraphQL::Model::MemberSchemaFields
10
10
  # embeds_many :publicFields, enum_class: Ecoportal::API::GraphQL::Model::MemberSchemaFields
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class Resource < Ecoportal::API::GraphQL::Base::Resource
5
+ class Resource < Base::Resource
6
6
  embeds_one :page, klass: 'Ecoportal::API::GraphQL::Model::Page', read_only: true # PageUnion
7
7
  embeds_one :field, klass: 'Ecoportal::API::GraphQL::Model::Field', read_only: true
8
8
  # embeds_many :stages, klass: 'Ecoportal::API::GraphQL::Model::SimpleStage'
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class GraphQL
4
4
  module Model
5
- class User < Ecoportal::API::GraphQL::BaseModel
5
+ class User < Logic::BaseModel
6
6
  root!
7
7
 
8
8
  passkey :id
@@ -3,12 +3,12 @@ module Ecoportal
3
3
  class GraphQL
4
4
  module Mutation
5
5
  module Action
6
- class Archive < Ecoportal::API::GraphQL::Logic::Mutation
6
+ class Archive < Logic::Mutation
7
7
  field_name :archiveAction
8
8
  accepted_params :id
9
9
 
10
- class_resolver :payload_class, Ecoportal::API::GraphQL::Payload::Action::Archive
11
- class_resolver :input_class, Ecoportal::API::GraphQL::Input::Action::Archive
10
+ class_resolver :payload_class, Payload::Action::Archive
11
+ class_resolver :input_class, Input::Action::Archive
12
12
 
13
13
  private
14
14
 
@@ -3,11 +3,11 @@ module Ecoportal
3
3
  class GraphQL
4
4
  module Mutation
5
5
  module Action
6
- class Create < Ecoportal::API::GraphQL::Logic::Mutation
6
+ class Create < Logic::Mutation
7
7
  field_name :createAction
8
8
 
9
- class_resolver :payload_class, Ecoportal::API::GraphQL::Payload::Action::Create
10
- class_resolver :input_class, Ecoportal::API::GraphQL::Input::Action::Create
9
+ class_resolver :payload_class, Payload::Action::Create
10
+ class_resolver :input_class, Input::Action::Create
11
11
 
12
12
  private
13
13
 
@@ -3,11 +3,11 @@ module Ecoportal
3
3
  class GraphQL
4
4
  module Mutation
5
5
  module Action
6
- class Update < Ecoportal::API::GraphQL::Logic::Mutation
6
+ class Update < Logic::Mutation
7
7
  field_name :updateAction
8
8
 
9
- class_resolver :payload_class, Ecoportal::API::GraphQL::Payload::Action::Update
10
- class_resolver :input_class, Ecoportal::API::GraphQL::Input::Action::Update
9
+ class_resolver :payload_class, Payload::Action::Update
10
+ class_resolver :input_class, Input::Action::Update
11
11
 
12
12
  private
13
13
 
@@ -3,11 +3,11 @@ module Ecoportal
3
3
  class GraphQL
4
4
  module Mutation
5
5
  module ContractorEntity
6
- class Create < Ecoportal::API::GraphQL::Logic::Mutation
6
+ class Create < Logic::Mutation
7
7
  field_name :createContractorEntity
8
8
 
9
- class_resolver :payload_class, Ecoportal::API::GraphQL::Payload::ContractorEntity::Create
10
- class_resolver :input_class, Ecoportal::API::GraphQL::Input::ContractorEntity::Create
9
+ class_resolver :payload_class, Payload::ContractorEntity::Create
10
+ class_resolver :input_class, Input::ContractorEntity::Create
11
11
 
12
12
  private
13
13
 
@@ -3,11 +3,11 @@ module Ecoportal
3
3
  class GraphQL
4
4
  module Mutation
5
5
  module ContractorEntity
6
- class Destroy < Ecoportal::API::GraphQL::Logic::Mutation
6
+ class Destroy < Logic::Mutation
7
7
  field_name :destroyContractorEntity
8
8
 
9
- class_resolver :payload_class, Ecoportal::API::GraphQL::Payload::ContractorEntity::Destroy
10
- class_resolver :input_class, Ecoportal::API::GraphQL::Input::ContractorEntity::Destroy
9
+ class_resolver :payload_class, Payload::ContractorEntity::Destroy
10
+ class_resolver :input_class, Input::ContractorEntity::Destroy
11
11
 
12
12
  private
13
13