Module: Dipps::Client
- Defined in:
- lib/dipps/client.rb,
lib/dipps/client/error.rb,
lib/dipps/client/schema.rb,
lib/dipps/client/queries.rb,
lib/dipps/client/version.rb,
lib/dipps/client/transport.rb,
lib/dipps/client/configuration.rb,
lib/dipps/client/graphql_client.rb,
lib/dipps/client/queries/clients.rb,
lib/dipps/client/queries/create_client.rb,
lib/dipps/client/queries/update_client.rb,
lib/dipps/client/queries/own_invoices_page.rb,
lib/dipps/client/queries/create_own_invoice.rb,
lib/dipps/client/queries/own_credit_notes_page.rb
Defined Under Namespace
Modules: Queries
Classes: Configuration, Error
Constant Summary
collapse
- SCHEMA_PATH =
File.expand_path(
File.join(File.dirname(__FILE__), '..', '..', 'vendor', 'schema.json')
).freeze
- Schema =
GraphQL::Client.load_schema(SCHEMA_PATH)
- VERSION =
"0.6.1"
- Transport =
GraphQL::Client::HTTP.new(Dipps::Client.configuration.api_url) do
def (_)
{ 'Authorization' => "Bearer #{Dipps::Client.configuration.api_key}" }
end
end
- GraphqlClient =
GraphQL::Client.new(schema: Schema, execute: Transport)
Class Method Summary
collapse
-
.clients(freelance_profile_id:, org_number: nil, email: nil) ⇒ Object
-
.configuration ⇒ Object
-
.configure {|configuration| ... } ⇒ Object
-
.create_client(attributes:) ⇒ Object
-
.create_own_invoice(freelance_profile_id:, attributes:) ⇒ Object
-
.own_credit_notes_page(filter:, sort_by:, page: 1, per_page: 20) ⇒ Object
-
.own_invoices_page(filter:, sort_by:, page: 1, per_page: 20) ⇒ Object
-
.perform_query(query:, result_field:, variables: {}) ⇒ Object
-
.update_client(id:, attributes:) ⇒ Object
Class Method Details
.clients(freelance_profile_id:, org_number: nil, email: nil) ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/dipps/client.rb', line 73
def clients(freelance_profile_id:, org_number: nil, email: nil)
perform_query(
query: Dipps::Client::Queries::Clients,
result_field: 'clients',
variables: {
orgNumber: org_number,
email: email,
freelance_profile_id: freelance_profile_id
}
)
end
|
14
15
16
17
18
19
20
|
# File 'lib/dipps/client.rb', line 14
def configure
yield(configuration)
unless require_relative 'client/queries'
raise 'Dipps::Client has already been configured.'
end
end
|
.create_client(attributes:) ⇒ Object
85
86
87
88
89
90
91
92
93
|
# File 'lib/dipps/client.rb', line 85
def create_client(attributes:)
perform_query(
query: Dipps::Client::Queries::CreateClient,
result_field: 'createClient',
variables: {
attributes: attributes
}
)
end
|
.create_own_invoice(freelance_profile_id:, attributes:) ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/dipps/client.rb', line 36
def create_own_invoice(freelance_profile_id:, attributes:)
perform_query(
query: Dipps::Client::Queries::CreateOwnInvoice,
result_field: 'createOwnInvoice',
variables: {
freelance_profile_id: freelance_profile_id,
attributes: attributes
}
)
end
|
.own_credit_notes_page(filter:, sort_by:, page: 1, per_page: 20) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/dipps/client.rb', line 60
def own_credit_notes_page(filter:, sort_by:, page: 1, per_page: 20)
perform_query(
query: Dipps::Client::Queries::OwnCreditNotesPage,
result_field: 'ownCreditNotesPage',
variables: {
filter: filter,
sort_by: sort_by,
page: page,
per_page: per_page
}
)
end
|
.own_invoices_page(filter:, sort_by:, page: 1, per_page: 20) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/dipps/client.rb', line 47
def own_invoices_page(filter:, sort_by:, page: 1, per_page: 20)
perform_query(
query: Dipps::Client::Queries::OwnInvoicesPage,
result_field: 'ownInvoicesPage',
variables: {
filter: filter,
sort_by: sort_by,
page: page,
per_page: per_page
}
)
end
|
26
27
28
29
30
31
32
33
34
|
# File 'lib/dipps/client.rb', line 26
def perform_query(query:, result_field:, variables: {})
result = GraphqlClient.query(query, variables: variables)
if result.errors.any?
raise(Dipps::Client::Error, result.errors.details.inspect)
end
result.data.to_h.fetch(result_field)
end
|
.update_client(id:, attributes:) ⇒ Object
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/dipps/client.rb', line 95
def update_client(id:, attributes:)
perform_query(
query: Dipps::Client::Queries::UpdateClient,
result_field: 'updateClient',
variables: {
id: id,
attributes: attributes
}
)
end
|