ecoportal-api-graphql 0.1.11 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -9
- data/ecoportal-api-graphql.gemspec +1 -1
- data/lib/ecoportal/api/common/graphql/query_integration.rb +5 -4
- data/lib/ecoportal/api/graphql/base/location_node.rb +15 -0
- data/lib/ecoportal/api/graphql/base/location_structure.rb +21 -0
- data/lib/ecoportal/api/graphql/base.rb +2 -10
- data/lib/ecoportal/api/graphql/builder/location_structure.rb +29 -0
- data/lib/ecoportal/api/graphql/builder.rb +10 -0
- data/lib/ecoportal/api/graphql/connection/action.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/person_member.rb +1 -1
- data/lib/ecoportal/api/graphql/error/locations_error.rb +13 -0
- data/lib/ecoportal/api/graphql/error/locations_validation_error.rb +11 -0
- data/lib/ecoportal/api/graphql/{base → error}/validation_errors.rb +1 -1
- data/lib/ecoportal/api/graphql/error.rb +12 -0
- data/lib/ecoportal/api/graphql/fragment/location_node.rb +20 -0
- data/lib/ecoportal/api/graphql/fragment.rb +1 -1
- data/lib/ecoportal/api/graphql/helpers/{tag_tree.rb → locations_tree.rb} +10 -3
- data/lib/ecoportal/api/graphql/helpers.rb +1 -1
- data/lib/ecoportal/api/graphql/input/contractor_entity/create.rb +16 -0
- data/lib/ecoportal/api/graphql/input/contractor_entity/destroy.rb +13 -0
- data/lib/ecoportal/api/graphql/input/{update_contractor_entity.rb → contractor_entity/update.rb} +1 -1
- data/lib/ecoportal/api/graphql/input/contractor_entity.rb +14 -0
- data/lib/ecoportal/api/graphql/{base/id_diff_input.rb → input/id_diff.rb} +2 -2
- data/lib/ecoportal/api/graphql/input/location_structure/apply_commands.rb +48 -0
- data/lib/ecoportal/api/graphql/input/location_structure/archive_command.rb +13 -0
- data/lib/ecoportal/api/graphql/input/location_structure/command_interface.rb +26 -0
- data/lib/ecoportal/api/graphql/input/location_structure/delete_command.rb +13 -0
- data/lib/ecoportal/api/graphql/input/location_structure/insert_command.rb +13 -0
- data/lib/ecoportal/api/graphql/input/location_structure/move_command.rb +14 -0
- data/lib/ecoportal/api/graphql/input/location_structure/reorder_command.rb +13 -0
- data/lib/ecoportal/api/graphql/input/location_structure/unarchive_command.rb +13 -0
- data/lib/ecoportal/api/graphql/input/location_structure/update_command.rb +14 -0
- data/lib/ecoportal/api/graphql/input/location_structure.rb +20 -0
- data/lib/ecoportal/api/graphql/input.rb +3 -3
- data/lib/ecoportal/api/graphql/{base → logic}/connection.rb +1 -1
- data/lib/ecoportal/api/graphql/{base → logic}/mutation.rb +10 -1
- data/lib/ecoportal/api/graphql/{base → logic}/payload.rb +2 -2
- data/lib/ecoportal/api/graphql/{base → logic}/query.rb +3 -2
- data/lib/ecoportal/api/graphql/{base → logic}/query_array.rb +2 -2
- data/lib/ecoportal/api/graphql/{base → logic}/query_connection.rb +3 -3
- data/lib/ecoportal/api/graphql/logic.rb +15 -0
- data/lib/ecoportal/api/graphql/model/location_node.rb +11 -0
- data/lib/ecoportal/api/graphql/model/{tag_tree.rb → location_structure.rb} +2 -2
- data/lib/ecoportal/api/graphql/model/organization.rb +2 -2
- data/lib/ecoportal/api/graphql/model.rb +2 -2
- data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +40 -0
- data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +14 -0
- data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +61 -0
- data/lib/ecoportal/api/graphql/mutation/location_structure.rb +12 -0
- data/lib/ecoportal/api/graphql/mutation.rb +2 -1
- data/lib/ecoportal/api/graphql/payload/contractor_entity/create.rb +13 -0
- data/lib/ecoportal/api/graphql/payload/contractor_entity/destroy.rb +12 -0
- data/lib/ecoportal/api/graphql/payload/contractor_entity/update.rb +12 -0
- data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +14 -0
- data/lib/ecoportal/api/graphql/payload/location_structure/apply_commands.rb +25 -0
- data/lib/ecoportal/api/graphql/payload/location_structure/command_execution_result.rb +15 -0
- data/lib/ecoportal/api/graphql/payload/location_structure/command_interface.rb +14 -0
- data/lib/ecoportal/api/graphql/payload/location_structure.rb +14 -0
- data/lib/ecoportal/api/graphql/payload.rb +2 -3
- data/lib/ecoportal/api/graphql/query/actions.rb +1 -1
- data/lib/ecoportal/api/graphql/query/contractor_entities.rb +1 -1
- data/lib/ecoportal/api/graphql/query/{tag_tree.rb → location_structure.rb} +12 -8
- data/lib/ecoportal/api/graphql/query/location_structures.rb +46 -0
- data/lib/ecoportal/api/graphql/query.rb +2 -2
- data/lib/ecoportal/api/graphql.rb +9 -2
- data/lib/ecoportal/api/graphql_version.rb +1 -1
- data/tests/loc_structure_get.rb +11 -0
- data/tests/loc_structure_update.rb +51 -0
- data/tests/loc_structures_get.rb +15 -0
- data/tests/local_libs.rb +2 -2
- metadata +63 -37
- data/lib/ecoportal/api/graphql/base/tag_tree.rb +0 -20
- data/lib/ecoportal/api/graphql/base/tag_tree_node.rb +0 -13
- data/lib/ecoportal/api/graphql/fragment/tag_tree_node.rb +0 -16
- data/lib/ecoportal/api/graphql/input/create_contractor_entity.rb +0 -14
- data/lib/ecoportal/api/graphql/input/destroy_contractor_entity.rb +0 -11
- data/lib/ecoportal/api/graphql/model/tag_tree_node.rb +0 -10
- data/lib/ecoportal/api/graphql/mutation/create_contractor_entity.rb +0 -38
- data/lib/ecoportal/api/graphql/payload/create_contractor_entity.rb +0 -11
- data/lib/ecoportal/api/graphql/payload/destroy_contractor_entity.rb +0 -10
- data/lib/ecoportal/api/graphql/payload/update_contractor_entity.rb +0 -10
- data/lib/ecoportal/api/graphql/query/tag_trees.rb +0 -37
- data/tests/tagtree_get.rb +0 -7
- data/tests/tagtrees_get.rb +0 -7
- /data/tests/{create_contractor_entity.rb → contractor_entity_create.rb} +0 -0
@@ -1,13 +1,18 @@
|
|
1
1
|
module Ecoportal
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
|
-
module
|
4
|
+
module Logic
|
5
5
|
class Mutation
|
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."
|
9
9
|
end
|
10
10
|
end
|
11
|
+
class GenericInput
|
12
|
+
def initialize(*args, **kargs)
|
13
|
+
raise "Missuse error. You should define a input_class for a class that inherits from Mutation class."
|
14
|
+
end
|
15
|
+
end
|
11
16
|
|
12
17
|
include Ecoportal::API::Common::GraphQL::ClassHelpers
|
13
18
|
|
@@ -22,6 +27,8 @@ module Ecoportal
|
|
22
27
|
end
|
23
28
|
|
24
29
|
class_resolver :payload_class, GenericPayload
|
30
|
+
class_resolver :input_class, GenericInput
|
31
|
+
|
25
32
|
attr_reader :client
|
26
33
|
attr_reader :base_path
|
27
34
|
|
@@ -67,6 +74,8 @@ module Ecoportal
|
|
67
74
|
|
68
75
|
def as_input(value)
|
69
76
|
case value
|
77
|
+
when input_class
|
78
|
+
value.as_input
|
70
79
|
when Hash
|
71
80
|
value
|
72
81
|
when Ecoportal::API::GraphQL::Base::Model
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Ecoportal
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
|
-
module
|
4
|
+
module Logic
|
5
5
|
class Payload < Ecoportal::API::GraphQL::Base::Model
|
6
6
|
class GenericItem
|
7
7
|
def initialize(*args, **kargs)
|
@@ -13,7 +13,7 @@ module Ecoportal
|
|
13
13
|
|
14
14
|
class_resolver :item_class, GenericItem
|
15
15
|
embeds_one :item, klass: :item_class
|
16
|
-
embeds_one :errors, klass: Ecoportal::API::GraphQL::
|
16
|
+
embeds_one :errors, klass: Ecoportal::API::GraphQL::Error::ValidationErrors, nullable: true
|
17
17
|
|
18
18
|
def success?
|
19
19
|
!errors || errors.empty?
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Ecoportal
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
|
-
module
|
4
|
+
module Logic
|
5
5
|
class Query
|
6
6
|
class GenericItem
|
7
7
|
def initialize(*args, **kargs)
|
@@ -80,9 +80,10 @@ module Ecoportal
|
|
80
80
|
request(*path) do
|
81
81
|
client.query(query_params, &block)
|
82
82
|
end
|
83
|
-
rescue Faraday::ParsingError => e
|
83
|
+
rescue Faraday::ParsingError, Graphlient::Errors::GraphQLError => e
|
84
84
|
puts "Internal Error with these params:"
|
85
85
|
pp kargs
|
86
|
+
pp block
|
86
87
|
raise
|
87
88
|
end
|
88
89
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Ecoportal
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
|
-
module
|
5
|
-
class QueryConnection < Ecoportal::API::GraphQL::
|
4
|
+
module Logic
|
5
|
+
class QueryConnection < Ecoportal::API::GraphQL::Logic::Query
|
6
6
|
accepted_params :searchConf, :after, :before, :first, :last
|
7
7
|
include Enumerable
|
8
8
|
|
@@ -25,7 +25,7 @@ module Ecoportal
|
|
25
25
|
return connection_class if respond_to?(:connection_class)
|
26
26
|
@response_class ||= self.class.new_class(
|
27
27
|
item_class,
|
28
|
-
inherits: Ecoportal::API::GraphQL::
|
28
|
+
inherits: Ecoportal::API::GraphQL::Logic::Connection,
|
29
29
|
namespace: "Ecoportal::API::GraphQL::Connection"
|
30
30
|
) do |klass|
|
31
31
|
klass.item_class = item_class
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Logic
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ecoportal/api/graphql/logic/query'
|
11
|
+
require 'ecoportal/api/graphql/logic/mutation'
|
12
|
+
require 'ecoportal/api/graphql/logic/connection'
|
13
|
+
require 'ecoportal/api/graphql/logic/query_array'
|
14
|
+
require 'ecoportal/api/graphql/logic/query_connection'
|
15
|
+
require 'ecoportal/api/graphql/logic/payload'
|
@@ -2,8 +2,8 @@ module Ecoportal
|
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
4
|
module Model
|
5
|
-
class
|
6
|
-
embeds_many :nodes, klass: Ecoportal::API::GraphQL::Model::
|
5
|
+
class LocationStructure < Ecoportal::API::GraphQL::Base::LocationStructure
|
6
|
+
embeds_many :nodes, klass: Ecoportal::API::GraphQL::Model::LocationNode, order_key: :weight
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -12,8 +12,8 @@ module Ecoportal
|
|
12
12
|
DEFAULT_PATH.dup.push(*add)
|
13
13
|
end
|
14
14
|
|
15
|
-
query :
|
16
|
-
query :
|
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
17
|
query :contractorEntities, query_klass: "Ecoportal::API::GraphQL::Query::ContractorEntities"
|
18
18
|
#contractorEntity,
|
19
19
|
query :actions, query_klass: "Ecoportal::API::GraphQL::Query::Actions"
|
@@ -7,8 +7,8 @@ module Ecoportal
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
require 'ecoportal/api/graphql/model/
|
11
|
-
require 'ecoportal/api/graphql/model/
|
10
|
+
require 'ecoportal/api/graphql/model/location_node'
|
11
|
+
require 'ecoportal/api/graphql/model/location_structure'
|
12
12
|
require 'ecoportal/api/graphql/model/account'
|
13
13
|
require 'ecoportal/api/graphql/model/user'
|
14
14
|
require 'ecoportal/api/graphql/model/person_member'
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Mutation
|
5
|
+
module ContractorEntity
|
6
|
+
class Create < Ecoportal::API::GraphQL::Logic::Mutation
|
7
|
+
field_name :createContractorEntity
|
8
|
+
|
9
|
+
class_resolver :payload_class, Ecoportal::API::GraphQL::Payload::ContractorEntity::Create
|
10
|
+
class_resolver :input_class, Ecoportal::API::GraphQL::Model::ContractorEntity
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def basic_block(&block)
|
15
|
+
payload_block = block || default_payload_block
|
16
|
+
Proc.new {
|
17
|
+
mutation(input: :CreateContractorEntityInput!) {
|
18
|
+
createContractorEntity(input: :input, &payload_block)
|
19
|
+
}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def default_payload_block
|
24
|
+
Proc.new {
|
25
|
+
clientMutationId
|
26
|
+
errors {
|
27
|
+
details
|
28
|
+
fullMessages
|
29
|
+
}
|
30
|
+
item {
|
31
|
+
___Fragment__ContractorEntity
|
32
|
+
}
|
33
|
+
}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Mutation
|
5
|
+
module ContractorEntity
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
require_relative 'contractor_entity/create'
|
13
|
+
# require_relative 'contractor_entity/destroy'
|
14
|
+
# require_relative 'contractor_entity/update'
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Mutation
|
5
|
+
module LocationStructure
|
6
|
+
class ApplyCommands < Ecoportal::API::GraphQL::Logic::Mutation
|
7
|
+
field_name :applyCommandsToLocationStructure
|
8
|
+
class_resolver :payload_class, Ecoportal::API::GraphQL::Payload::LocationStructure::ApplyCommands
|
9
|
+
class_resolver :input_class, Ecoportal::API::GraphQL::Input::LocationStructure::ApplyCommands
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def basic_block(&block)
|
14
|
+
payload_block = block || default_payload_block
|
15
|
+
Proc.new {
|
16
|
+
mutation(input: :ApplyCommandsToLocationStructureInput!) {
|
17
|
+
applyCommandsToLocationStructure(input: :input, &payload_block)
|
18
|
+
}
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def default_payload_block
|
23
|
+
Proc.new {
|
24
|
+
clientMutationId
|
25
|
+
error {
|
26
|
+
message
|
27
|
+
conflictingIds
|
28
|
+
validationErrors {
|
29
|
+
error
|
30
|
+
message
|
31
|
+
}
|
32
|
+
}
|
33
|
+
results {
|
34
|
+
command {
|
35
|
+
id
|
36
|
+
state
|
37
|
+
__typename
|
38
|
+
}
|
39
|
+
ok
|
40
|
+
error {
|
41
|
+
conflictingIds
|
42
|
+
message
|
43
|
+
validationErrors {
|
44
|
+
error
|
45
|
+
message
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
structure {
|
50
|
+
nodes(includeArchived: true) {
|
51
|
+
___Ecoportal__API__GraphQL__Fragment__LocationNode
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Payload
|
5
|
+
module ContractorEntity
|
6
|
+
class Create < Ecoportal::API::GraphQL::Logic::Payload
|
7
|
+
class_resolver :item_class, "Ecoportal::API::GraphQL::Model::ContractorEntity"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Payload
|
5
|
+
module ContractorEntity
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
require_relative 'contractor_entity/create'
|
13
|
+
require_relative 'contractor_entity/destroy'
|
14
|
+
require_relative 'contractor_entity/update'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Payload
|
5
|
+
module LocationStructure
|
6
|
+
class ApplyCommands < Ecoportal::API::GraphQL::Base::Model
|
7
|
+
passthrough :clientMutationId
|
8
|
+
embeds_one :structure, klass: Ecoportal::API::GraphQL::Model::LocationStructure
|
9
|
+
embeds_one :errors, klass: Ecoportal::API::GraphQL::Error::ValidationErrors, nullable: true
|
10
|
+
embeds_one :error, klass: Ecoportal::API::GraphQL::Error::LocationsError, nullable: true
|
11
|
+
embeds_many :results, read_only: true, klass: Ecoportal::API::GraphQL::Payload::LocationStructure::CommandExecutionResult
|
12
|
+
|
13
|
+
def success?
|
14
|
+
!errors?
|
15
|
+
end
|
16
|
+
|
17
|
+
def errors?
|
18
|
+
errors && !errors.empty?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Payload
|
5
|
+
module LocationStructure
|
6
|
+
class CommandExecutionResult < Ecoportal::API::GraphQL::Base::Model
|
7
|
+
embeds_one :command, klass: Ecoportal::API::GraphQL::Payload::LocationStructure::CommandInterface
|
8
|
+
embeds_one :error, klass: Ecoportal::API::GraphQL::Error::LocationsError
|
9
|
+
passboolean :ok
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Payload
|
5
|
+
module LocationStructure
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
require_relative 'location_structure/command_interface'
|
13
|
+
require_relative 'location_structure/command_execution_result'
|
14
|
+
require_relative 'location_structure/apply_commands'
|
@@ -7,6 +7,5 @@ module Ecoportal
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
require 'ecoportal/api/graphql/payload/
|
11
|
-
require 'ecoportal/api/graphql/payload/
|
12
|
-
require 'ecoportal/api/graphql/payload/destroy_contractor_entity'
|
10
|
+
require 'ecoportal/api/graphql/payload/location_structure'
|
11
|
+
require 'ecoportal/api/graphql/payload/contractor_entity'
|
@@ -2,7 +2,7 @@ module Ecoportal
|
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
4
|
module Query
|
5
|
-
class Actions < Ecoportal::API::GraphQL::
|
5
|
+
class Actions < Ecoportal::API::GraphQL::Logic::QueryConnection
|
6
6
|
field_name :actions
|
7
7
|
|
8
8
|
class_resolver :item_class, Ecoportal::API::GraphQL::Model::Action
|
@@ -2,7 +2,7 @@ module Ecoportal
|
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
4
|
module Query
|
5
|
-
class ContractorEntities < Ecoportal::API::GraphQL::
|
5
|
+
class ContractorEntities < Ecoportal::API::GraphQL::Logic::QueryConnection
|
6
6
|
field_name :contractorEntities
|
7
7
|
|
8
8
|
class_resolver :item_class, Ecoportal::API::GraphQL::Model::ContractorEntity
|
@@ -2,32 +2,36 @@ module Ecoportal
|
|
2
2
|
module API
|
3
3
|
class GraphQL
|
4
4
|
module Query
|
5
|
-
class
|
5
|
+
class LocationStructure < Ecoportal::API::GraphQL::Logic::Query
|
6
6
|
accepted_params :id
|
7
|
-
field_name :
|
7
|
+
field_name :structure
|
8
8
|
|
9
|
-
class_resolver :item_class, Ecoportal::API::GraphQL::Model::
|
9
|
+
class_resolver :item_class, Ecoportal::API::GraphQL::Model::LocationStructure
|
10
10
|
|
11
11
|
private
|
12
12
|
|
13
13
|
def basic_block(&block)
|
14
|
-
final_block = block ||
|
14
|
+
final_block = block || default_query_block
|
15
15
|
Proc.new {
|
16
16
|
query(id: :id!) {
|
17
17
|
currentOrganization {
|
18
|
-
|
18
|
+
locations {
|
19
|
+
structure(id: :id, &final_block)
|
20
|
+
}
|
19
21
|
}
|
20
22
|
}
|
21
23
|
}
|
22
24
|
end
|
23
25
|
|
24
|
-
def
|
26
|
+
def default_query_block
|
25
27
|
Proc.new {
|
26
28
|
id
|
27
29
|
name
|
30
|
+
archived
|
31
|
+
weight
|
28
32
|
visitorManagementEnabled
|
29
|
-
nodes {
|
30
|
-
|
33
|
+
nodes(includeArchived: true) {
|
34
|
+
___Ecoportal__API__GraphQL__Fragment__LocationNode
|
31
35
|
}
|
32
36
|
}
|
33
37
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class GraphQL
|
4
|
+
module Query
|
5
|
+
class LocationStructures < Ecoportal::API::GraphQL::Logic::QueryArray
|
6
|
+
accepted_params :includeArchived, :includeUnpublished
|
7
|
+
field_name :structures
|
8
|
+
|
9
|
+
class_resolver :item_class, Ecoportal::API::GraphQL::Model::LocationStructure
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def basic_block(&block)
|
14
|
+
final_block = block || default_query_block
|
15
|
+
Proc.new {
|
16
|
+
query(includeArchived: :boolean, includeUnpublished: :boolean) {
|
17
|
+
currentOrganization {
|
18
|
+
locations {
|
19
|
+
structures(
|
20
|
+
includeArchived: :includeArchived,
|
21
|
+
includeUnpublished: :includeUnpublished,
|
22
|
+
&final_block
|
23
|
+
)
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
def default_query_block
|
31
|
+
Proc.new {
|
32
|
+
id
|
33
|
+
name
|
34
|
+
archived
|
35
|
+
weight
|
36
|
+
visitorManagementEnabled
|
37
|
+
nodes(includeArchived: true) {
|
38
|
+
___Ecoportal__API__GraphQL__Fragment__LocationNode
|
39
|
+
}
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -7,7 +7,7 @@ module Ecoportal
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
require 'ecoportal/api/graphql/query/
|
11
|
-
require 'ecoportal/api/graphql/query/
|
10
|
+
require 'ecoportal/api/graphql/query/location_structure'
|
11
|
+
require 'ecoportal/api/graphql/query/location_structures'
|
12
12
|
require 'ecoportal/api/graphql/query/actions'
|
13
13
|
require 'ecoportal/api/graphql/query/contractor_entities'
|
@@ -30,12 +30,16 @@ module Ecoportal
|
|
30
30
|
createContractorEntityMutation.query(input: input, &block)
|
31
31
|
end
|
32
32
|
|
33
|
+
# Gives a builder to use different options to modify a reporting structure
|
34
|
+
def locationStructure
|
35
|
+
Ecoportal::API::GraphQL::Builder::LocationStructure.new(client)
|
36
|
+
end
|
37
|
+
|
33
38
|
private
|
34
39
|
|
35
40
|
def createContractorEntityMutation
|
36
|
-
Ecoportal::API::GraphQL::Mutation::
|
41
|
+
Ecoportal::API::GraphQL::Mutation::ContractorEntity::Create.new(client)
|
37
42
|
end
|
38
|
-
|
39
43
|
end
|
40
44
|
end
|
41
45
|
end
|
@@ -43,9 +47,12 @@ end
|
|
43
47
|
require 'ecoportal/api/graphql/helpers'
|
44
48
|
require 'ecoportal/api/graphql/base'
|
45
49
|
require 'ecoportal/api/graphql/model'
|
50
|
+
require 'ecoportal/api/graphql/error'
|
51
|
+
require 'ecoportal/api/graphql/logic'
|
46
52
|
require 'ecoportal/api/graphql/connection'
|
47
53
|
require 'ecoportal/api/graphql/payload'
|
48
54
|
require 'ecoportal/api/graphql/input'
|
49
55
|
require 'ecoportal/api/graphql/fragment'
|
50
56
|
require 'ecoportal/api/graphql/query'
|
51
57
|
require 'ecoportal/api/graphql/mutation'
|
58
|
+
require 'ecoportal/api/graphql/builder'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require_relative 'local_libs'
|
2
|
+
|
3
|
+
STRUCT_ID = "592642a4ae0c6a00236b110d" # mini test
|
4
|
+
# STRUCT_ID = "626745bcba616a001f7e5011" # wcc
|
5
|
+
|
6
|
+
|
7
|
+
api = Ecoportal::API::GraphQL.new
|
8
|
+
api.currentOrganization.LocationStructure(id: STRUCT_ID).tap do |tree|
|
9
|
+
puts "'#{tree.name}' Structure (#{tree.id})"
|
10
|
+
pp tree.treeify
|
11
|
+
end
|