ecoportal-api-graphql 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +21 -0
- data/.rspec +3 -0
- data/.rubocop.yml +55 -0
- data/.travis.yml +5 -0
- data/.yardopts +10 -0
- data/CHANGELOG.md +22 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +20 -0
- data/Rakefile +27 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/bin/setup.ps1 +6 -0
- data/ecoportal-api-graphql.gemspec +34 -0
- data/lib/ecoportal/api/common/graphql/auth_service.rb +66 -0
- data/lib/ecoportal/api/common/graphql/class_helpers.rb +34 -0
- data/lib/ecoportal/api/common/graphql/client.rb +43 -0
- data/lib/ecoportal/api/common/graphql/doc_helpers.rb +10 -0
- data/lib/ecoportal/api/common/graphql/hash_helpers.rb +79 -0
- data/lib/ecoportal/api/common/graphql/http_client.rb +84 -0
- data/lib/ecoportal/api/common/graphql.rb +15 -0
- data/lib/ecoportal/api/common.graphql.rb +8 -0
- data/lib/ecoportal/api/graphql/base/action.rb +36 -0
- data/lib/ecoportal/api/graphql/base/action_category.rb +13 -0
- data/lib/ecoportal/api/graphql/base/connection.rb +33 -0
- data/lib/ecoportal/api/graphql/base/contractor_entity.rb +17 -0
- data/lib/ecoportal/api/graphql/base/date_time.rb +12 -0
- data/lib/ecoportal/api/graphql/base/field.rb +12 -0
- data/lib/ecoportal/api/graphql/base/file_attachment.rb +15 -0
- data/lib/ecoportal/api/graphql/base/file_container.rb +14 -0
- data/lib/ecoportal/api/graphql/base/id_diff_input.rb +11 -0
- data/lib/ecoportal/api/graphql/base/model.rb +33 -0
- data/lib/ecoportal/api/graphql/base/organization.rb +13 -0
- data/lib/ecoportal/api/graphql/base/page.rb +12 -0
- data/lib/ecoportal/api/graphql/base/page_info.rb +12 -0
- data/lib/ecoportal/api/graphql/base/payload.rb +25 -0
- data/lib/ecoportal/api/graphql/base/person_member.rb +20 -0
- data/lib/ecoportal/api/graphql/base/query.rb +61 -0
- data/lib/ecoportal/api/graphql/base/query_connection.rb +56 -0
- data/lib/ecoportal/api/graphql/base/resource.rb +13 -0
- data/lib/ecoportal/api/graphql/base/validation_errors.rb +23 -0
- data/lib/ecoportal/api/graphql/base.rb +28 -0
- data/lib/ecoportal/api/graphql/connection/action.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/person_member.rb +11 -0
- data/lib/ecoportal/api/graphql/connection.rb +12 -0
- data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +19 -0
- data/lib/ecoportal/api/graphql/fragment/pagination.rb +17 -0
- data/lib/ecoportal/api/graphql/fragment.rb +50 -0
- data/lib/ecoportal/api/graphql/input/create_contractor_entity.rb +14 -0
- data/lib/ecoportal/api/graphql/input/destroy_contractor_entity.rb +11 -0
- data/lib/ecoportal/api/graphql/input/search.rb +13 -0
- data/lib/ecoportal/api/graphql/input/search_filter.rb +12 -0
- data/lib/ecoportal/api/graphql/input/search_sorter.rb +11 -0
- data/lib/ecoportal/api/graphql/input/update_contractor_entity.rb +10 -0
- data/lib/ecoportal/api/graphql/input.rb +15 -0
- data/lib/ecoportal/api/graphql/model/account.rb +13 -0
- data/lib/ecoportal/api/graphql/model/action.rb +21 -0
- data/lib/ecoportal/api/graphql/model/contractor_entity.rb +12 -0
- data/lib/ecoportal/api/graphql/model/field.rb +10 -0
- data/lib/ecoportal/api/graphql/model/file_attachment.rb +10 -0
- data/lib/ecoportal/api/graphql/model/file_container.rb +11 -0
- data/lib/ecoportal/api/graphql/model/organization.rb +46 -0
- data/lib/ecoportal/api/graphql/model/page.rb +10 -0
- data/lib/ecoportal/api/graphql/model/person_member.rb +15 -0
- data/lib/ecoportal/api/graphql/model/resource.rb +12 -0
- data/lib/ecoportal/api/graphql/model/user.rb +12 -0
- data/lib/ecoportal/api/graphql/model.rb +20 -0
- data/lib/ecoportal/api/graphql/payload/create_contractor_entity.rb +11 -0
- data/lib/ecoportal/api/graphql/payload/destroy_contractor_entity.rb +10 -0
- data/lib/ecoportal/api/graphql/payload/update_contractor_entity.rb +10 -0
- data/lib/ecoportal/api/graphql/payload.rb +12 -0
- data/lib/ecoportal/api/graphql/query/actions.rb +94 -0
- data/lib/ecoportal/api/graphql/query/contractor_entities.rb +64 -0
- data/lib/ecoportal/api/graphql/query.rb +11 -0
- data/lib/ecoportal/api/graphql.rb +38 -0
- data/lib/ecoportal/api/graphql_version.rb +5 -0
- data/lib/ecoportal/api-graphql.rb +10 -0
- data/tests/actions_get.rb +8 -0
- data/tests/contractor_entities_get.rb +20 -0
- data/tests/local_libs.rb +14 -0
- metadata +278 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class Connection < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
class GenericNode
|
|
7
|
+
def initialize(*args, **kargs)
|
|
8
|
+
raise "Missuse error. You should define a node_class for a class that inherits from GraphqlConnection class."
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
include Enumerable
|
|
13
|
+
|
|
14
|
+
class_resolver :node_class, GenericNode
|
|
15
|
+
|
|
16
|
+
passthrough :edges
|
|
17
|
+
passthrough :totalCount
|
|
18
|
+
embeds_many :nodes, klass: :node_class
|
|
19
|
+
embeds_one :pageInfo, klass: Ecoportal::API::GraphQL::Base::PageInfo
|
|
20
|
+
|
|
21
|
+
def empty?
|
|
22
|
+
count < 1
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def each(&block)
|
|
26
|
+
return to_enum(:each) unless block
|
|
27
|
+
nodes.each(&block)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class ContractorEntity < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
passkey :id
|
|
7
|
+
passthrough :name
|
|
8
|
+
passboolean :active, :approved
|
|
9
|
+
passthrough :schemaId
|
|
10
|
+
|
|
11
|
+
passarray :associatedPeopleIds, :leadContractorIds
|
|
12
|
+
embeds_one :creator, klass: "Ecoportal::API::GraphQL::Model::User"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class FileAttachment < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
passkey :id
|
|
7
|
+
passthrough :attachmentFileSize, :attachmentFileName, :attachmentContentType
|
|
8
|
+
passthrough :urlType, :activeName
|
|
9
|
+
passthrough :userId, :userName
|
|
10
|
+
embeds_one :attachmentUpdatedAt, klass: GraphQL::Base::DateTime
|
|
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 Base
|
|
5
|
+
class FileContainer < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
passkey :id
|
|
7
|
+
passthrough :name, :activeName
|
|
8
|
+
passthrough :fileSize, :token, :activeVersionId
|
|
9
|
+
passarray :tags
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class Model < Ecoportal::API::Common::Content::DoubleModel
|
|
6
|
+
include Ecoportal::API::Common::GraphQL::ClassHelpers
|
|
7
|
+
#include GraphModel::HashKeys
|
|
8
|
+
class << self
|
|
9
|
+
attr_accessor :client
|
|
10
|
+
|
|
11
|
+
def as_input(hash, clientMutationId: "")
|
|
12
|
+
hash_input = hash.merge(clientMutationId: clientMutationId)
|
|
13
|
+
Ecoportal::API::Common::GraphQL::HashHelpers.remove_nil_keys_deep(hash_input, target: :id)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def as_update(ref = :last, ignore: [], sym_keys: false)
|
|
18
|
+
new_doc = as_json
|
|
19
|
+
ref_doc = ref == :total ? initial_doc : original_doc
|
|
20
|
+
Ecoportal::API::Common::HashDiff.diff(new_doc, ref_doc, ignore: ignore).yield_self do |out|
|
|
21
|
+
next out unless sym_keys
|
|
22
|
+
Ecoportal::API::Common::GraphQL::HashHelpers.keys_to_sym_deep(out)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def as_input(clientMutationId: "")
|
|
27
|
+
self.class.as_input(as_update(sym_keys: true), clientMutationId: clientMutationId)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class Payload < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
class GenericItem
|
|
7
|
+
def initialize(*args, **kargs)
|
|
8
|
+
raise "Missuse error. You should define a item_class for a class that inherits from GraphqlPayload class."
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
passthrough :clientMutationId
|
|
13
|
+
|
|
14
|
+
class_resolver :item_class, GenericItem
|
|
15
|
+
embeds_one :item, klass: :item_class
|
|
16
|
+
embeds_one :errors, klass: Ecoportal::API::GraphQL::Base::ValidationErrors, nullable: true
|
|
17
|
+
|
|
18
|
+
def success?
|
|
19
|
+
!errors || errors.empty?
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class PersonMember < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
passkey :id
|
|
7
|
+
passthrough :name, :email
|
|
8
|
+
passarray :tagRestrict, :userGroupIds
|
|
9
|
+
|
|
10
|
+
passthrough :personSchemaId
|
|
11
|
+
|
|
12
|
+
passthrough :contractorOrganizationId
|
|
13
|
+
passthrough :userId
|
|
14
|
+
|
|
15
|
+
passboolean :tracingAdmin
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class Query
|
|
6
|
+
class GenericItem
|
|
7
|
+
def initialize(*args, **kargs)
|
|
8
|
+
raise "Missuse error. You should define a item_class for a class that inherits from Query class."
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
include Ecoportal::API::Common::GraphQL::ClassHelpers
|
|
13
|
+
|
|
14
|
+
inheritable_attrs :accepted_params
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
def accepted_params(*keys)
|
|
18
|
+
@accepted_params ||= []
|
|
19
|
+
return @accepted_params if keys.empty?
|
|
20
|
+
@accepted_params.push(*keys).tap {|ks| ks.uniq!}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def clear_accepted_params
|
|
24
|
+
@accepted_params = []
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def slice_params(kargs)
|
|
28
|
+
kargs.slice(*accepted_params)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class_resolver :item_class, GenericItem
|
|
33
|
+
attr_reader :client
|
|
34
|
+
|
|
35
|
+
def initialize(client)
|
|
36
|
+
@client = client
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def response_class
|
|
40
|
+
item_class
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def access_point(path = [])
|
|
44
|
+
path.last
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def request(*path)
|
|
48
|
+
response = yield
|
|
49
|
+
wrap_response(response, path)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def wrap_response(response, path = [])
|
|
53
|
+
raise "Complete failure on request. Path: #{path}" unless res = response.to_h.dig("data", *path)
|
|
54
|
+
data = Ecoportal::API::Common::GraphQL::HashHelpers.deep_dup(res)
|
|
55
|
+
response_class.new(data)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class QueryConnection < Ecoportal::API::GraphQL::Base::Query
|
|
6
|
+
accepted_params :searchConf, :after, :before, :first, :last
|
|
7
|
+
include Enumerable
|
|
8
|
+
|
|
9
|
+
attr_reader :path
|
|
10
|
+
|
|
11
|
+
def initialize(*args, path: default_base_path, **kargs)
|
|
12
|
+
@path = path
|
|
13
|
+
super(*args, **kargs)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def query(path: default_base_path, **kargs, &block)
|
|
17
|
+
path ||= default_base_path
|
|
18
|
+
kargs = self.class.slice_params(kargs)
|
|
19
|
+
ap = access_point(path)
|
|
20
|
+
raise "Missuse. You have to implement this method in the child class"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def each(**kargs, &block)
|
|
24
|
+
return to_enum(:each, **kargs) unless block
|
|
25
|
+
cursor = nil; results = 0
|
|
26
|
+
loop do
|
|
27
|
+
kargs.update(after: cursor) if cursor
|
|
28
|
+
connection = query(**kargs)
|
|
29
|
+
#total = connection.totalCount
|
|
30
|
+
pageInfo = connection.pageInfo
|
|
31
|
+
connection.nodes.each do |item|
|
|
32
|
+
yield item
|
|
33
|
+
end
|
|
34
|
+
break unless cursor = pageInfo.endCursor
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def response_class
|
|
39
|
+
return connection_class if respond_to?(:connection_class)
|
|
40
|
+
@response_class ||= self.class.new_class(
|
|
41
|
+
item_class,
|
|
42
|
+
inherits: Ecoportal::API::GraphQL::Base::Connection,
|
|
43
|
+
namespace: "Ecoportal::API::GraphQL::Connection"
|
|
44
|
+
) do |klass|
|
|
45
|
+
klass.item_class = item_class
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def default_base_path
|
|
50
|
+
["currentOrganization"]
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
class ValidationErrors < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
include Enumerable
|
|
7
|
+
|
|
8
|
+
passthrough :details
|
|
9
|
+
passarray :fullMessages
|
|
10
|
+
|
|
11
|
+
def empty?
|
|
12
|
+
count < 1
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def each(&block)
|
|
16
|
+
return to_enum(:each) unless block
|
|
17
|
+
fullMessages.each(&block)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Base
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require 'ecoportal/api/graphql/base/model'
|
|
11
|
+
require 'ecoportal/api/graphql/base/date_time'
|
|
12
|
+
require 'ecoportal/api/graphql/base/id_diff_input'
|
|
13
|
+
require 'ecoportal/api/graphql/base/page_info'
|
|
14
|
+
require 'ecoportal/api/graphql/base/query'
|
|
15
|
+
require 'ecoportal/api/graphql/base/connection'
|
|
16
|
+
require 'ecoportal/api/graphql/base/query_connection'
|
|
17
|
+
require 'ecoportal/api/graphql/base/validation_errors'
|
|
18
|
+
require 'ecoportal/api/graphql/base/payload'
|
|
19
|
+
require 'ecoportal/api/graphql/base/person_member'
|
|
20
|
+
require 'ecoportal/api/graphql/base/file_attachment'
|
|
21
|
+
require 'ecoportal/api/graphql/base/file_container'
|
|
22
|
+
require 'ecoportal/api/graphql/base/field'
|
|
23
|
+
require 'ecoportal/api/graphql/base/page'
|
|
24
|
+
require 'ecoportal/api/graphql/base/resource'
|
|
25
|
+
require 'ecoportal/api/graphql/base/action_category'
|
|
26
|
+
require 'ecoportal/api/graphql/base/action'
|
|
27
|
+
require 'ecoportal/api/graphql/base/contractor_entity'
|
|
28
|
+
require 'ecoportal/api/graphql/base/organization'
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Connection
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require 'ecoportal/api/graphql/connection/person_member'
|
|
11
|
+
require 'ecoportal/api/graphql/connection/contractor_entity'
|
|
12
|
+
require 'ecoportal/api/graphql/connection/action'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
class Fragment
|
|
5
|
+
fragment :ContractorEntity, <<~'GRAPHQL'
|
|
6
|
+
fragment on ContractorEntity {
|
|
7
|
+
id
|
|
8
|
+
name
|
|
9
|
+
schemaId
|
|
10
|
+
active
|
|
11
|
+
approved
|
|
12
|
+
associatedPeopleIds
|
|
13
|
+
leadContractorIds
|
|
14
|
+
}
|
|
15
|
+
GRAPHQL
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
class Fragment
|
|
5
|
+
class << self
|
|
6
|
+
def const?(value)
|
|
7
|
+
begin
|
|
8
|
+
const_get(value)
|
|
9
|
+
rescue NameError => e
|
|
10
|
+
return false
|
|
11
|
+
end
|
|
12
|
+
true
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def fragment(sym, heredoc)
|
|
16
|
+
fragments[sym] = heredoc
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def fragments
|
|
20
|
+
@fragments ||= {}
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
attr_reader :client, :fragments
|
|
25
|
+
|
|
26
|
+
def initialize(client)
|
|
27
|
+
@client = client
|
|
28
|
+
parse
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
def parse
|
|
34
|
+
fragments = self.class.fragments.each_with_object({}) do |(sym, heredoc), out|
|
|
35
|
+
if self.class.const?(sym)
|
|
36
|
+
fragment = self.class.get_const(sym)
|
|
37
|
+
else
|
|
38
|
+
fragment = client.parse(heredoc)
|
|
39
|
+
self.class.const_set(sym, fragment)
|
|
40
|
+
end
|
|
41
|
+
out[sym] = fragment
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
require 'ecoportal/api/graphql/fragment/contractor_entity'
|
|
50
|
+
require 'ecoportal/api/graphql/fragment/pagination'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Input
|
|
5
|
+
class CreateContractorEntity < Ecoportal::API::GraphQL::Base::ContractorEntity
|
|
6
|
+
passthrough :clientMutationId
|
|
7
|
+
class_resolver :id_diff_input, "Ecoportal::API::GraphQL::Base::IdDiffInput"
|
|
8
|
+
embeds_one :associatedPeopleIds, klass: :id_diff_input
|
|
9
|
+
embeds_one :leadContractorIds, klass: :id_diff_input
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Input
|
|
5
|
+
class Search < Ecoportal::API::GraphQL::Base::Model
|
|
6
|
+
embeds_many :filters, enum_class: "Ecoportal::API::GraphQL::Input::SearchFilter"
|
|
7
|
+
passthrough :query
|
|
8
|
+
embeds_many :sorters, enum_class: "Ecoportal::API::GraphQL::Input::SearchSorter"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Input
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require 'ecoportal/api/graphql/input/search_filter'
|
|
11
|
+
require 'ecoportal/api/graphql/input/search_sorter'
|
|
12
|
+
require 'ecoportal/api/graphql/input/search'
|
|
13
|
+
require 'ecoportal/api/graphql/input/create_contractor_entity'
|
|
14
|
+
require 'ecoportal/api/graphql/input/update_contractor_entity'
|
|
15
|
+
require 'ecoportal/api/graphql/input/destroy_contractor_entity'
|