microsoft_kiota_abstractions 0.16.0 → 0.18.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 +4 -4
- data/Rakefile +2 -2
- data/lib/microsoft_kiota_abstractions/api_client_builder.rb +12 -9
- data/lib/microsoft_kiota_abstractions/api_error.rb +20 -18
- data/lib/microsoft_kiota_abstractions/authentication/access_token_provider.rb +3 -4
- data/lib/microsoft_kiota_abstractions/authentication/allowed_hosts_validator.rb +1 -2
- data/lib/microsoft_kiota_abstractions/authentication/anonymous_authentication_provider.rb +5 -2
- data/lib/microsoft_kiota_abstractions/authentication/authentication_provider.rb +5 -3
- data/lib/microsoft_kiota_abstractions/authentication/base_bearer_token_authentication_provider.rb +4 -3
- data/lib/microsoft_kiota_abstractions/base_request_builder.rb +33 -33
- data/lib/microsoft_kiota_abstractions/http_method.rb +4 -4
- data/lib/microsoft_kiota_abstractions/request_adapter.rb +13 -13
- data/lib/microsoft_kiota_abstractions/request_configuration.rb +19 -17
- data/lib/microsoft_kiota_abstractions/request_headers.rb +58 -54
- data/lib/microsoft_kiota_abstractions/request_information.rb +63 -75
- data/lib/microsoft_kiota_abstractions/request_option.rb +7 -5
- data/lib/microsoft_kiota_abstractions/serialization/additional_data_holder.rb +6 -4
- data/lib/microsoft_kiota_abstractions/serialization/composed_type_wrapper.rb +2 -0
- data/lib/microsoft_kiota_abstractions/serialization/iso_duration.rb +64 -63
- data/lib/microsoft_kiota_abstractions/serialization/parsable.rb +5 -3
- data/lib/microsoft_kiota_abstractions/serialization/parse_node.rb +30 -30
- data/lib/microsoft_kiota_abstractions/serialization/parse_node_factory.rb +4 -2
- data/lib/microsoft_kiota_abstractions/serialization/parse_node_factory_registry.rb +27 -19
- data/lib/microsoft_kiota_abstractions/serialization/parse_node_helper.rb +2 -0
- data/lib/microsoft_kiota_abstractions/serialization/serialization_writer.rb +37 -37
- data/lib/microsoft_kiota_abstractions/serialization/serialization_writer_factory.rb +4 -4
- data/lib/microsoft_kiota_abstractions/serialization/serialization_writer_factory_registry.rb +23 -14
- data/lib/microsoft_kiota_abstractions/version.rb +1 -1
- data/lib/microsoft_kiota_abstractions.rb +24 -24
- data/microsoft_kiota_abstractions.gemspec +9 -10
- metadata +24 -45
- data/.github/CODEOWNERS +0 -1
- data/.github/copilot-instructions.md +0 -25
- data/.github/dependabot.yml +0 -16
- data/.github/policies/kiota-abstractions-ruby-branch-protection.yml +0 -40
- data/.github/policies/resourceManagement.yml +0 -101
- data/.github/release-please.yml +0 -3
- data/.github/workflows/auto-merge-dependabot.yml +0 -33
- data/.github/workflows/code-ql.yml +0 -77
- data/.github/workflows/conflicting-pr-label.yml +0 -39
- data/.github/workflows/release-please-gha.yml +0 -49
- data/.github/workflows/release.yml +0 -36
- data/.github/workflows/ruby.yml +0 -48
- data/.gitignore +0 -58
- data/.release-please-manifest.json +0 -3
- data/CHANGELOG.md +0 -88
- data/CODE_OF_CONDUCT.md +0 -10
- data/CONTRIBUTING.md +0 -56
- data/LICENSE +0 -21
- data/README.md +0 -51
- data/SECURITY.md +0 -41
- data/SUPPORT.md +0 -25
- data/release-please-config.json +0 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fbefae20343c4dfd9791a2db12c30acaa72b990cb049bfba57fc43355ed5587f
|
|
4
|
+
data.tar.gz: ba72ac95dcd9d2998c96323297722e4ebf9a56771d38aa01b5b8e1a8b168e173
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7722d4736ef858746b4320a6dbb9fe31570892840e705b599b438231459b73a9dbdb75158e26a4c8a2f56ea2b824d4d5aa8465af948ec5909ff572329ee23d4e
|
|
7
|
+
data.tar.gz: 609be2adf7d3b4566cc927a0233b06e092ba04b08c928ca70730b9f3861ab4992e1d7a032a681e4cabd16aa458a5f3bbc775946a6902b1bef83a59b33aaf095e
|
data/Rakefile
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'serialization/parse_node_factory'
|
|
4
|
+
require_relative 'serialization/parse_node_factory_registry'
|
|
5
|
+
require_relative 'serialization/serialization_writer_factory'
|
|
6
|
+
require_relative 'serialization/serialization_writer_factory_registry'
|
|
5
7
|
|
|
6
8
|
module MicrosoftKiotaAbstractions
|
|
7
9
|
class ApiClientBuilder
|
|
8
10
|
def self.register_default_serializer(factory_class)
|
|
9
|
-
factory = factory_class.new
|
|
10
|
-
MicrosoftKiotaAbstractions::SerializationWriterFactoryRegistry.default_instance.content_type_associated_factories[factory.get_valid_content_type
|
|
11
|
+
factory = factory_class.new
|
|
12
|
+
MicrosoftKiotaAbstractions::SerializationWriterFactoryRegistry.default_instance.content_type_associated_factories[factory.get_valid_content_type] =
|
|
13
|
+
factory
|
|
11
14
|
end
|
|
12
15
|
|
|
13
16
|
def self.register_default_deserializer(factory_class)
|
|
14
|
-
factory = factory_class.new
|
|
15
|
-
MicrosoftKiotaAbstractions::ParseNodeFactoryRegistry.default_instance.content_type_associated_factories[factory.get_valid_content_type
|
|
17
|
+
factory = factory_class.new
|
|
18
|
+
MicrosoftKiotaAbstractions::ParseNodeFactoryRegistry.default_instance.content_type_associated_factories[factory.get_valid_content_type] =
|
|
19
|
+
factory
|
|
16
20
|
end
|
|
17
21
|
end
|
|
18
22
|
end
|
|
19
|
-
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require_relative 'serialization/parsable'
|
|
2
4
|
module MicrosoftKiotaAbstractions
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
class ApiError < StandardError
|
|
6
|
+
include MicrosoftKiotaAbstractions::Parsable
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
## Serializes information the current object
|
|
15
|
-
## @param writer Serialization writer to use to serialize this model
|
|
16
|
-
## @return a void
|
|
17
|
-
##
|
|
18
|
-
def serialize(writer)
|
|
19
|
-
raise StandardError, 'writer cannot be null' if writer.nil?
|
|
20
|
-
end
|
|
8
|
+
##
|
|
9
|
+
## The deserialization information for the current model
|
|
10
|
+
## @return a i_dictionary
|
|
11
|
+
##
|
|
12
|
+
def get_field_deserializers
|
|
13
|
+
{}
|
|
14
|
+
end
|
|
21
15
|
|
|
16
|
+
##
|
|
17
|
+
## Serializes information the current object
|
|
18
|
+
## @param writer Serialization writer to use to serialize this model
|
|
19
|
+
## @return a void
|
|
20
|
+
##
|
|
21
|
+
def serialize(writer)
|
|
22
|
+
raise StandardError, 'writer cannot be null' if writer.nil?
|
|
22
23
|
end
|
|
23
|
-
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -7,14 +7,13 @@ module MicrosoftKiotaAbstractions
|
|
|
7
7
|
module AccessTokenProvider
|
|
8
8
|
# This function obtains the authorization token.
|
|
9
9
|
# :params
|
|
10
|
-
# uri: a string containing the uri
|
|
10
|
+
# uri: a string containing the uri
|
|
11
11
|
# additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
|
|
12
12
|
# default is empty hash
|
|
13
|
-
def get_authorization_token(
|
|
14
|
-
raise NotImplementedError
|
|
13
|
+
def get_authorization_token(_uri, _additional_properties = {})
|
|
14
|
+
raise NotImplementedError
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
attr_accessor :scopes, :host_validator
|
|
18
|
-
|
|
19
18
|
end
|
|
20
19
|
end
|
|
@@ -24,11 +24,10 @@ module MicrosoftKiotaAbstractions
|
|
|
24
24
|
|
|
25
25
|
parsed_url = URI(url)
|
|
26
26
|
return false if parsed_url.host.nil?
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
return false unless parsed_url.is_a?(URI::HTTPS)
|
|
29
29
|
|
|
30
30
|
@allowed_hosts.key? parsed_url.host.downcase
|
|
31
|
-
|
|
32
31
|
rescue URI::InvalidURIError
|
|
33
32
|
false
|
|
34
33
|
end
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module MicrosoftKiotaAbstractions
|
|
2
4
|
class AnonymousAuthenticationProvider
|
|
3
5
|
include MicrosoftKiotaAbstractions::AuthenticationProvider
|
|
4
|
-
|
|
6
|
+
|
|
7
|
+
def authenticate_request(_request, _additional_properties = {})
|
|
5
8
|
# return an empty Fiber - all other authentication providers do the same, and the FaradayRequestAdapter requires it.
|
|
6
9
|
Fiber.new do
|
|
7
10
|
end
|
|
8
11
|
end
|
|
9
12
|
end
|
|
10
|
-
end
|
|
13
|
+
end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module MicrosoftKiotaAbstractions
|
|
2
4
|
module AuthenticationProvider
|
|
3
|
-
def authenticate_request(
|
|
4
|
-
raise NotImplementedError
|
|
5
|
-
end
|
|
5
|
+
def authenticate_request(_request, _additional_properties = {})
|
|
6
|
+
raise NotImplementedError
|
|
7
|
+
end
|
|
6
8
|
end
|
|
7
9
|
end
|
data/lib/microsoft_kiota_abstractions/authentication/base_bearer_token_authentication_provider.rb
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative '
|
|
4
|
-
require_relative '
|
|
3
|
+
require_relative 'authentication_provider'
|
|
4
|
+
require_relative 'access_token_provider'
|
|
5
5
|
|
|
6
6
|
module MicrosoftKiotaAbstractions
|
|
7
7
|
# Provides a base class for implementing AuthenticationProvider for Bearer token scheme
|
|
8
8
|
class BaseBearerTokenAuthenticationProvider
|
|
9
9
|
include MicrosoftKiotaAbstractions::AuthenticationProvider
|
|
10
|
+
|
|
10
11
|
def initialize(access_token_provider)
|
|
11
12
|
raise StandardError, 'access_token_provider parameter cannot be nil' if access_token_provider.nil?
|
|
12
13
|
|
|
13
14
|
@access_token_provider = access_token_provider
|
|
14
|
-
end
|
|
15
|
+
end
|
|
15
16
|
|
|
16
17
|
AUTHORIZATION_HEADER_KEY = 'Authorization'
|
|
17
18
|
def authenticate_request(request, additional_properties = {})
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module MicrosoftKiotaAbstractions
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
elsif path_parameters.is_a? String then
|
|
29
|
-
@path_parameters = { "request-raw-url" => path_parameters }
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
@path_parameters = Hash.new if path_parameters.nil?
|
|
33
|
-
@url_template = url_template
|
|
4
|
+
##
|
|
5
|
+
# Base class for request builders. Performs basic validation and defines common properties.
|
|
6
|
+
class BaseRequestBuilder
|
|
7
|
+
##
|
|
8
|
+
# Path parameters for the request
|
|
9
|
+
##
|
|
10
|
+
# The request adapter to use to execute the requests.
|
|
11
|
+
##
|
|
12
|
+
# Url template to use to build the URL for the current request builder
|
|
13
|
+
##
|
|
14
|
+
## Instantiates a new BaseRequestBuilder and sets the default values.
|
|
15
|
+
## @param path_parameters Path parameters for the request
|
|
16
|
+
## @param request_adapter The request adapter to use to execute the requests.
|
|
17
|
+
## @param url_template Url template to use to build the URL for the current request builder
|
|
18
|
+
## @return a void
|
|
19
|
+
##
|
|
20
|
+
def initialize(path_parameters, request_adapter, url_template)
|
|
21
|
+
raise StandardError, 'request_adapter cannot be null' if request_adapter.nil?
|
|
22
|
+
raise StandardError, 'url_template cannot be null' if url_template.nil? || url_template.empty?
|
|
23
|
+
|
|
24
|
+
@request_adapter = request_adapter
|
|
25
|
+
unless path_parameters.nil?
|
|
26
|
+
if path_parameters.is_a? Hash
|
|
27
|
+
@path_parameters = path_parameters.clone
|
|
28
|
+
elsif path_parameters.is_a? String
|
|
29
|
+
@path_parameters = { 'request-raw-url' => path_parameters }
|
|
34
30
|
end
|
|
31
|
+
end
|
|
32
|
+
@path_parameters = {} if path_parameters.nil?
|
|
33
|
+
@url_template = url_template
|
|
35
34
|
end
|
|
36
|
-
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module MicrosoftKiotaAbstractions
|
|
2
4
|
module HttpMethod
|
|
3
|
-
|
|
4
5
|
HTTP_METHOD = {
|
|
5
6
|
GET: :GET,
|
|
6
7
|
POST: :POST,
|
|
@@ -11,7 +12,6 @@ module MicrosoftKiotaAbstractions
|
|
|
11
12
|
PUT: :PUT,
|
|
12
13
|
TRACE: :TRACE,
|
|
13
14
|
HEAD: :HEAD
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
end
|
|
15
|
+
}.freeze
|
|
17
16
|
end
|
|
17
|
+
end
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require_relative 'request_information'
|
|
2
4
|
|
|
3
5
|
module MicrosoftKiotaAbstractions
|
|
4
6
|
module RequestAdapter
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
raise NotImplementedError.new
|
|
7
|
+
def send_async(_request_info, _factory, _errors_mapping)
|
|
8
|
+
raise NotImplementedError
|
|
8
9
|
end
|
|
9
10
|
|
|
10
|
-
# TODO we're most likley missing something for enums and collections or at least at the implemenation level
|
|
11
|
+
# TODO: we're most likley missing something for enums and collections or at least at the implemenation level
|
|
11
12
|
|
|
12
|
-
def get_serialization_writer_factory
|
|
13
|
-
raise NotImplementedError
|
|
13
|
+
def get_serialization_writer_factory
|
|
14
|
+
raise NotImplementedError
|
|
14
15
|
end
|
|
15
16
|
|
|
16
|
-
def set_base_url(
|
|
17
|
-
raise NotImplementedError
|
|
17
|
+
def set_base_url(_base_url)
|
|
18
|
+
raise NotImplementedError
|
|
18
19
|
end
|
|
19
20
|
|
|
20
|
-
def get_base_url
|
|
21
|
-
raise NotImplementedError
|
|
21
|
+
def get_base_url
|
|
22
|
+
raise NotImplementedError
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
# Converts the given RequestInformation into a native HTTP request.
|
|
25
|
-
def convert_to_native_request_async(
|
|
26
|
-
raise NotImplementedError
|
|
26
|
+
def convert_to_native_request_async(_request_info)
|
|
27
|
+
raise NotImplementedError
|
|
27
28
|
end
|
|
28
|
-
|
|
29
29
|
end
|
|
30
30
|
end
|
|
@@ -1,22 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require_relative 'request_headers'
|
|
2
4
|
|
|
3
5
|
module MicrosoftKiotaAbstractions
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
##
|
|
7
|
+
# Configuration for the request such as headers, query parameters, and middleware options.
|
|
8
|
+
class RequestConfiguration
|
|
9
|
+
##
|
|
10
|
+
# Request headers
|
|
11
|
+
attr_accessor :headers
|
|
12
|
+
##
|
|
13
|
+
# Request options
|
|
14
|
+
attr_accessor :options
|
|
15
|
+
##
|
|
16
|
+
# Request query parameters
|
|
17
|
+
attr_accessor :query_parameters
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
end
|
|
19
|
+
def initialize
|
|
20
|
+
@headers = RequestHeaders.new
|
|
21
|
+
@options = []
|
|
21
22
|
end
|
|
22
|
-
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -1,56 +1,60 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module MicrosoftKiotaAbstractions
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
end
|
|
6
|
-
def add(key, value)
|
|
7
|
-
if key.nil? || key.empty? || value.nil? || value.empty? then
|
|
8
|
-
raise ArgumentError, 'key and value cannot be nil or empty'
|
|
9
|
-
end
|
|
10
|
-
existing_value = @headers[key]
|
|
11
|
-
if existing_value.nil? then
|
|
12
|
-
if value.kind_of?(Array) then
|
|
13
|
-
@headers[key] = value
|
|
14
|
-
else
|
|
15
|
-
@headers[key] = Array[value.to_s]
|
|
16
|
-
end
|
|
17
|
-
else
|
|
18
|
-
if value.kind_of?(Array) then
|
|
19
|
-
@headers[key] = existing_value | value
|
|
20
|
-
else
|
|
21
|
-
existing_value << value.to_s
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
def try_add(key, value)
|
|
26
|
-
if key.nil? || key.empty? || value.nil? || value.empty? then
|
|
27
|
-
raise ArgumentError, 'key and value cannot be nil or empty'
|
|
28
|
-
end
|
|
29
|
-
existing_value = @headers[key]
|
|
30
|
-
if existing_value.nil? || existing_value.empty? then
|
|
31
|
-
@headers[key] = Array[value.to_s]
|
|
32
|
-
return true
|
|
33
|
-
else
|
|
34
|
-
return false
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
def get(key)
|
|
38
|
-
if key.nil? || key.empty? then
|
|
39
|
-
raise ArgumentError, 'key cannot be nil or empty'
|
|
40
|
-
end
|
|
41
|
-
return @headers[key]
|
|
42
|
-
end
|
|
43
|
-
def remove(key)
|
|
44
|
-
if key.nil? || key.empty? then
|
|
45
|
-
raise ArgumentError, 'key cannot be nil or empty'
|
|
46
|
-
end
|
|
47
|
-
@headers.delete(key)
|
|
48
|
-
end
|
|
49
|
-
def clear()
|
|
50
|
-
@headers.clear()
|
|
51
|
-
end
|
|
52
|
-
def get_all()
|
|
53
|
-
return @headers
|
|
54
|
-
end
|
|
4
|
+
class RequestHeaders
|
|
5
|
+
def initialize
|
|
6
|
+
@headers = {}
|
|
55
7
|
end
|
|
56
|
-
|
|
8
|
+
|
|
9
|
+
def add(key, value)
|
|
10
|
+
if key.nil? || key.empty? || value.nil? || value.empty?
|
|
11
|
+
raise ArgumentError, 'key and value cannot be nil or empty'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
existing_value = @headers[key]
|
|
15
|
+
if existing_value.nil?
|
|
16
|
+
@headers[key] = if value.is_a?(Array)
|
|
17
|
+
value
|
|
18
|
+
else
|
|
19
|
+
[value.to_s]
|
|
20
|
+
end
|
|
21
|
+
elsif value.is_a?(Array)
|
|
22
|
+
@headers[key] = existing_value | value
|
|
23
|
+
else
|
|
24
|
+
existing_value << value.to_s
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def try_add(key, value)
|
|
29
|
+
if key.nil? || key.empty? || value.nil? || value.empty?
|
|
30
|
+
raise ArgumentError, 'key and value cannot be nil or empty'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
existing_value = @headers[key]
|
|
34
|
+
return false unless existing_value.nil? || existing_value.empty?
|
|
35
|
+
|
|
36
|
+
@headers[key] = [value.to_s]
|
|
37
|
+
true
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def get(key)
|
|
41
|
+
raise ArgumentError, 'key cannot be nil or empty' if key.nil? || key.empty?
|
|
42
|
+
|
|
43
|
+
@headers[key]
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def remove(key)
|
|
47
|
+
raise ArgumentError, 'key cannot be nil or empty' if key.nil? || key.empty?
|
|
48
|
+
|
|
49
|
+
@headers.delete(key)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def clear
|
|
53
|
+
@headers.clear
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def get_all
|
|
57
|
+
@headers
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'uri'
|
|
2
4
|
require 'stduritemplate'
|
|
3
5
|
require_relative 'http_method'
|
|
@@ -7,75 +9,65 @@ module MicrosoftKiotaAbstractions
|
|
|
7
9
|
class RequestInformation
|
|
8
10
|
attr_reader :content, :http_method, :headers
|
|
9
11
|
attr_accessor :url_template, :path_parameters, :query_parameters
|
|
12
|
+
|
|
10
13
|
@@binary_content_type = 'application/octet-stream'
|
|
11
14
|
@@content_type_header = 'Content-Type'
|
|
12
15
|
@@raw_url_key = 'request-raw-url'
|
|
13
16
|
|
|
14
|
-
def initialize
|
|
17
|
+
def initialize
|
|
15
18
|
@headers = RequestHeaders.new
|
|
16
|
-
@query_parameters =
|
|
17
|
-
@path_parameters =
|
|
19
|
+
@query_parameters = {}
|
|
20
|
+
@path_parameters = {}
|
|
18
21
|
end
|
|
19
|
-
|
|
22
|
+
|
|
20
23
|
def uri=(arg)
|
|
21
|
-
if arg.nil? || arg.empty?
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
self.query_parameters.clear()
|
|
24
|
+
raise ArgumentError, 'arg cannot be nil or empty' if arg.nil? || arg.empty?
|
|
25
|
+
|
|
26
|
+
path_parameters.clear
|
|
27
|
+
query_parameters.clear
|
|
26
28
|
@uri = URI(arg)
|
|
27
29
|
end
|
|
28
30
|
|
|
29
31
|
def uri
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
self.uri = self.path_parameters[@@raw_url_key]
|
|
35
|
-
return @uri
|
|
36
|
-
else
|
|
37
|
-
return URI(StdUriTemplate.expand(@url_template, self.path_parameters.merge(self.query_parameters)))
|
|
38
|
-
end
|
|
32
|
+
return @uri unless @uri.nil?
|
|
33
|
+
|
|
34
|
+
if path_parameters[@@raw_url_key].nil?
|
|
35
|
+
return URI(StdUriTemplate.expand(@url_template, path_parameters.merge(query_parameters)))
|
|
39
36
|
end
|
|
37
|
+
|
|
38
|
+
self.uri = path_parameters[@@raw_url_key]
|
|
39
|
+
@uri
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def add_request_options(request_options_to_add)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
@request_options[key] = request_option
|
|
51
|
-
end
|
|
43
|
+
return if request_options_to_add.nil?
|
|
44
|
+
|
|
45
|
+
@request_options ||= {}
|
|
46
|
+
request_options_to_add = [request_options_to_add] unless request_options_to_add.is_a?(Array)
|
|
47
|
+
request_options_to_add.each do |request_option|
|
|
48
|
+
key = request_option.get_key
|
|
49
|
+
@request_options[key] = request_option
|
|
52
50
|
end
|
|
53
51
|
end
|
|
54
52
|
|
|
55
|
-
def get_request_options
|
|
56
|
-
if @request_options.nil?
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return @request_options.values
|
|
60
|
-
end
|
|
53
|
+
def get_request_options
|
|
54
|
+
return [] if @request_options.nil?
|
|
55
|
+
|
|
56
|
+
@request_options.values
|
|
61
57
|
end
|
|
62
58
|
|
|
63
59
|
def get_request_option(key)
|
|
64
|
-
if @request_options.nil? || key.nil? || key.empty?
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return @request_options[key]
|
|
68
|
-
end
|
|
60
|
+
return nil if @request_options.nil? || key.nil? || key.empty?
|
|
61
|
+
|
|
62
|
+
@request_options[key]
|
|
69
63
|
end
|
|
70
64
|
|
|
71
65
|
def remove_request_options(keys)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
@request_options.delete(key)
|
|
78
|
-
end
|
|
66
|
+
return if keys.nil? || @request_options.nil?
|
|
67
|
+
|
|
68
|
+
keys = [keys] unless keys.is_a?(Array)
|
|
69
|
+
keys.each do |key|
|
|
70
|
+
@request_options.delete(key)
|
|
79
71
|
end
|
|
80
72
|
end
|
|
81
73
|
|
|
@@ -85,48 +77,44 @@ module MicrosoftKiotaAbstractions
|
|
|
85
77
|
|
|
86
78
|
def set_stream_content(value = $stdin, content_type)
|
|
87
79
|
@content = value
|
|
88
|
-
if content_type.nil? || content_type.empty?
|
|
89
|
-
content_type = @@binary_content_type
|
|
90
|
-
end
|
|
80
|
+
content_type = @@binary_content_type if content_type.nil? || content_type.empty?
|
|
91
81
|
@headers.try_add(@@content_type_header, content_type)
|
|
92
82
|
end
|
|
93
83
|
|
|
94
84
|
def set_content_from_parsable(request_adapter, content_type, values)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
writer.write_object_value(nil, values);
|
|
102
|
-
end
|
|
103
|
-
@content = writer.get_serialized_content();
|
|
104
|
-
rescue => exception
|
|
105
|
-
raise Exception.new "could not serialize payload"
|
|
85
|
+
writer = request_adapter.get_serialization_writer_factory.get_serialization_writer(content_type)
|
|
86
|
+
@headers.try_add(@@content_type_header, content_type)
|
|
87
|
+
if !values.nil? && values.is_a?(Array)
|
|
88
|
+
writer.write_collection_of_object_values(nil, values)
|
|
89
|
+
else
|
|
90
|
+
writer.write_object_value(nil, values)
|
|
106
91
|
end
|
|
92
|
+
@content = writer.get_serialized_content
|
|
93
|
+
rescue StandardError
|
|
94
|
+
raise StandardError, 'could not serialize payload'
|
|
107
95
|
end
|
|
108
96
|
|
|
109
97
|
def add_headers_from_raw_object(h)
|
|
110
|
-
h
|
|
98
|
+
h&.get_all&.select { |x, y| @headers.add(x.to_s, y) }
|
|
111
99
|
end
|
|
112
|
-
|
|
100
|
+
|
|
113
101
|
def set_query_string_parameters_from_raw_object(q)
|
|
114
|
-
if !q || q.is_a?(Hash) || q.is_a?(Array)
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
q.class.instance_methods(false).select{|x|
|
|
102
|
+
return if !q || q.is_a?(Hash) || q.is_a?(Array)
|
|
103
|
+
|
|
104
|
+
q.class.instance_methods(false).select do |x|
|
|
118
105
|
method_name = x.to_s
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
key = q.get_query_parameter(method_name)
|
|
122
|
-
rescue => exception
|
|
123
|
-
key = method_name
|
|
124
|
-
end
|
|
125
|
-
value = eval("q.#{method_name}")
|
|
126
|
-
self.query_parameters[key] = value unless value.nil?
|
|
106
|
+
if method_name == 'compare_by_identity' || method_name == 'get_query_parameter' || method_name.end_with?('=') || method_name.end_with?('?') || method_name.end_with?('!')
|
|
107
|
+
next
|
|
127
108
|
end
|
|
128
|
-
}
|
|
129
|
-
end
|
|
130
109
|
|
|
110
|
+
begin
|
|
111
|
+
key = q.get_query_parameter(method_name)
|
|
112
|
+
rescue StandardError
|
|
113
|
+
key = method_name
|
|
114
|
+
end
|
|
115
|
+
value = eval("q.#{method_name}")
|
|
116
|
+
query_parameters[key] = value unless value.nil?
|
|
117
|
+
end
|
|
118
|
+
end
|
|
131
119
|
end
|
|
132
120
|
end
|