From 68cd5f04ffb64f04a73a4b2b8e231fb98c33c600 Mon Sep 17 00:00:00 2001 From: Francesco Malvezzi Date: Thu, 4 May 2017 14:21:15 +0200 Subject: [PATCH 01/12] Let Usage example to work --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5730390b2e..8a20a0368d 100644 --- a/README.md +++ b/README.md @@ -40,10 +40,11 @@ tenant = 'tenant.onmicrosoft.com' user_cred = ADAL::UserCredential.new(username, password) client_cred = ADAL::ClientCredential.new(client_id, client_secret) context = ADAL::AuthenticationContext.new(ADAL::Authority::WORLD_WIDE_AUTHORITY, tenant) +resource = "https://graph.microsoft.com" tokens = context.acquire_token_for_user(resource, client_cred, user_cred) # add the access token to the request header -callback = Proc.new { |r| r.headers["Authorization"] = "Bearer #{tokens.access_token}" +callback = Proc.new { |r| r.headers["Authorization"] = "Bearer #{tokens.access_token}" } graph = MicrosoftGraph.new( base_url: "https://graph.microsoft.com/v1.0", From 1ba335171579d328e3bf1cccd01d36b760d647fa Mon Sep 17 00:00:00 2001 From: "Caitlin Bales (MSFT)" Date: Mon, 12 Jun 2017 09:41:51 -0700 Subject: [PATCH 02/12] Updating Nokogiri As per PR #7 --- microsoft_graph.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsoft_graph.gemspec b/microsoft_graph.gemspec index 97c42c1627..a7fe1577eb 100644 --- a/microsoft_graph.gemspec +++ b/microsoft_graph.gemspec @@ -27,5 +27,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency "simplecov", "~> 0.11.1" spec.add_development_dependency "webmock", "~> 1.22.6" - spec.add_dependency "nokogiri", "~> 1.6.8" + spec.add_dependency "nokogiri", "~> 1.8.0" end From c00c95f6a4a1163d739acb8e57ac26eb7ca21bb9 Mon Sep 17 00:00:00 2001 From: "Caitlin Bales (MSFT)" Date: Tue, 13 Jun 2017 10:38:24 -0700 Subject: [PATCH 03/12] Bump version number for bugfix release` --- lib/microsoft_graph/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/microsoft_graph/version.rb b/lib/microsoft_graph/version.rb index 4f7d50ff64..3bd2ff5a6f 100644 --- a/lib/microsoft_graph/version.rb +++ b/lib/microsoft_graph/version.rb @@ -1,3 +1,3 @@ class MicrosoftGraph - VERSION = "0.1.2" + VERSION = "0.1.3" end From ee1d642c1ca5e66407c43ee00b3c5888bce6476d Mon Sep 17 00:00:00 2001 From: "Caitlin Bales (MSFT)" Date: Tue, 13 Jun 2017 10:41:42 -0700 Subject: [PATCH 04/12] Add new Ruby gem --- microsoft_graph-0.1.2.gem | Bin 54784 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 microsoft_graph-0.1.2.gem diff --git a/microsoft_graph-0.1.2.gem b/microsoft_graph-0.1.2.gem deleted file mode 100644 index 750bfdca938dd640d46fe7dc27fef07272ef2a9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54784 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

Z@aVvRQM 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

  • m^!qchOCT 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 q%kiZ6^H34t#Uqn*;xU2mS?xp)HO8 From 3b14003f7c8112e98ce096690521131b822fc7e5 Mon Sep 17 00:00:00 2001 From: Oskar Klintrot Date: Mon, 18 Sep 2017 14:15:39 +0200 Subject: [PATCH 05/12] Fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a20a0368d..8004eee516 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Register your application to use Microsoft Graph API using one of the following supported authentication portals: * [Microsoft Application Registration Portal](https://apps.dev.microsoft.com) (**Recommended**): - Register a new application that authenticates using the v2.0 authentication endpoint. This endpoint autthenticates both personal (Microsoft) and work or school (Azure Active Directory) accounts. + Register a new application that authenticates using the v2.0 authentication endpoint. This endpoint authenticates both personal (Microsoft) and work or school (Azure Active Directory) accounts. * [Microsoft Azure Active Directory](https://manage.windowsazure.com): Register a new application in your tenant's Active Directory to support work or school users for your tenant, or multiple tenants. From 52f6ffd285cff5c5498231351cffffbe5f3db654 Mon Sep 17 00:00:00 2001 From: Doug Mahugh Date: Fri, 27 Oct 2017 10:25:41 -0700 Subject: [PATCH 06/12] Update README.md Add Code of Conduct link --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8004eee516..c7b1b6e238 100644 --- a/README.md +++ b/README.md @@ -97,3 +97,5 @@ To view or log issues, see [issues](https://github.com/microsoftgraph/msgraph-sd ## License Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT [license](LICENSE). + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. From b21d5e1956a078606bbee4f686033d08edbd6a61 Mon Sep 17 00:00:00 2001 From: Martin Jesper Low Madsen Date: Mon, 27 Nov 2017 15:20:49 +0100 Subject: [PATCH 07/12] Adds support for specifying API version --- README.md | 8 +++--- lib/microsoft_graph.rb | 5 ++-- lib/microsoft_graph/collection_association.rb | 27 ++++++++++--------- lib/odata/service.rb | 15 ++++++++++- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index c7b1b6e238..b52d1518ec 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,10 @@ tokens = context.acquire_token_for_user(resource, client_cred, user_cred) # add the access token to the request header callback = Proc.new { |r| r.headers["Authorization"] = "Bearer #{tokens.access_token}" } -graph = MicrosoftGraph.new( - base_url: "https://graph.microsoft.com/v1.0", - cached_metadata_file: File.join(MicrosoftGraph::CACHED_METADATA_DIRECTORY, "metadata_v1.0.xml"), - &callback +graph = MicrosoftGraph.new(base_url: "https://graph.microsoft.com/v1.0", + cached_metadata_file: File.join(MicrosoftGraph::CACHED_METADATA_DIRECTORY, "metadata_v1.0.xml"), + api_version: '1.6', # Optional + &callback ) me = graph.me # get the current user diff --git a/lib/microsoft_graph.rb b/lib/microsoft_graph.rb index ecef3192db..57a4f06875 100644 --- a/lib/microsoft_graph.rb +++ b/lib/microsoft_graph.rb @@ -14,9 +14,10 @@ class MicrosoftGraph def initialize(options = {}, &auth_callback) @service = OData::Service.new( + api_version: options[:api_version], + auth_callback: auth_callback, base_url: BASE_URL, - metadata_file: options[:cached_metadata_file], - auth_callback: auth_callback + metadata_file: options[:cached_metadata_file] ) @association_collections = {} unless MicrosoftGraph::ClassBuilder.loaded? diff --git a/lib/microsoft_graph/collection_association.rb b/lib/microsoft_graph/collection_association.rb index ba29d24d22..2663ca3860 100644 --- a/lib/microsoft_graph/collection_association.rb +++ b/lib/microsoft_graph/collection_association.rb @@ -191,21 +191,24 @@ def last? def fetch_next_page @next_link ||= query_path - result = begin - @graph.service.get(@next_link) - rescue OData::ClientError => e - if matches = /Unsupported sort property '([^']*)'/.match(e.message) - raise MicrosoftGraph::TypeError.new("Cannot sort by #{matches[1]}") - elsif /OrderBy not supported/.match(e.message) - if @order_by.length == 1 - raise MicrosoftGraph::TypeError.new("Cannot sort by #{@order_by.first}") + + result = + begin + @graph.service.get(@next_link) + rescue OData::ClientError => e + if matches = /Unsupported sort property '([^']*)'/.match(e.message) + raise MicrosoftGraph::TypeError.new("Cannot sort by #{matches[1]}") + elsif /OrderBy not supported/.match(e.message) + if @order_by.length == 1 + raise MicrosoftGraph::TypeError.new("Cannot sort by #{@order_by.first}") + else + raise MicrosoftGraph::TypeError.new("Cannot sort by at least one field requested") + end else - raise MicrosoftGraph::TypeError.new("Cannot sort by at least one field requested") + raise e end - else - raise e end - end + @next_link = result[:attributes]['@odata.next_link'] @next_link.sub!(MicrosoftGraph::BASE_URL, "") if @next_link diff --git a/lib/odata/service.rb b/lib/odata/service.rb index 9ec5d419ad..6af2d8ade4 100644 --- a/lib/odata/service.rb +++ b/lib/odata/service.rb @@ -4,6 +4,9 @@ class Service attr_reader :metadata def initialize(options = {}, &block) + @api_version = { + 'api-version': options[:api_version] + } if options[:api_version] @auth_callback = options[:auth_callback] || block @base_url = options[:base_url] @metadata_file = options[:metadata_file] @@ -64,7 +67,17 @@ def patch(path, data) end def request(options = {}) - req = Request.new(options[:method], options[:uri], options[:data]) + uri = options[:uri] + + if @api_version then + parsed_uri = URI(uri) + params = URI.decode_www_form(parsed_uri.query || '') + .concat(@api_version.to_a) + parsed_uri.query = URI.encode_www_form params + uri = parsed_uri.to_s + end + + req = Request.new(options[:method], uri, options[:data]) @auth_callback.call(req) if @auth_callback req.perform end From bbefd1794020587dcfbb8423f31ec52c599d2d60 Mon Sep 17 00:00:00 2001 From: Ars Emchik Date: Tue, 12 Jun 2018 20:45:42 +0300 Subject: [PATCH 08/12] [#29] Replace raise RuntimeError with Value for BinaryType - https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/29 --- lib/odata/types/primitive_types/binary_type.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/odata/types/primitive_types/binary_type.rb b/lib/odata/types/primitive_types/binary_type.rb index 90e6f9e047..b4cf0d97e8 100644 --- a/lib/odata/types/primitive_types/binary_type.rb +++ b/lib/odata/types/primitive_types/binary_type.rb @@ -5,7 +5,7 @@ def valid_value?(value) end def coerce(value) - raise RuntimeError + value end def name From ce0a41903b9abbd3c03305f88ee9860bdc393717 Mon Sep 17 00:00:00 2001 From: Ethan Fann Date: Thu, 17 Jan 2019 16:35:28 -0800 Subject: [PATCH 09/12] Updates README to clarify development status --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b52d1518ec..ee9bf5493c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Getting started with the Microsoft Graph Client Library for Ruby -This client library is a release candidate and is still in preview status, please continue to provide [feedback](https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/new) as we iterate towards a production supported library. +This client library is a release candidate and is still in preview statu. As such, this library is **not production ready**. Please proceed at your own risk and continue to provide [feedback](https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/new) as we iterate towards a production supported library. ## Installation run ```gem install microsoft_graph``` or include ```gem microsoft_graph``` in your gemfile. From 48897686fd25c542554d7560b06d6714475b95a6 Mon Sep 17 00:00:00 2001 From: Ethan Fann Date: Thu, 17 Jan 2019 16:37:59 -0800 Subject: [PATCH 10/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee9bf5493c..3fef5f0cf0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Getting started with the Microsoft Graph Client Library for Ruby -This client library is a release candidate and is still in preview statu. As such, this library is **not production ready**. Please proceed at your own risk and continue to provide [feedback](https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/new) as we iterate towards a production supported library. +This client library is a release candidate and is still in preview status. As such, this library is **not production ready**. Please proceed at your own risk and continue to provide [feedback](https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/new) as we iterate towards a production supported library. ## Installation run ```gem install microsoft_graph``` or include ```gem microsoft_graph``` in your gemfile. From 218080b3f7333fafdd2769b3374b27d54c3adaf4 Mon Sep 17 00:00:00 2001 From: Junichi Ito Date: Tue, 23 Apr 2019 17:41:17 +0900 Subject: [PATCH 11/12] Enable to support Nokogiri >= 1.10.3 https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/44 --- microsoft_graph.gemspec | 2 +- spec/common_spec_helper.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/microsoft_graph.gemspec b/microsoft_graph.gemspec index a7fe1577eb..bcac27595e 100644 --- a/microsoft_graph.gemspec +++ b/microsoft_graph.gemspec @@ -27,5 +27,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency "simplecov", "~> 0.11.1" spec.add_development_dependency "webmock", "~> 1.22.6" - spec.add_dependency "nokogiri", "~> 1.8.0" + spec.add_dependency "nokogiri", ">= 1.8.0" end diff --git a/spec/common_spec_helper.rb b/spec/common_spec_helper.rb index 4f3eb01de4..134ac95f6b 100644 --- a/spec/common_spec_helper.rb +++ b/spec/common_spec_helper.rb @@ -5,6 +5,10 @@ require "rspec" require 'rspec/given' + +# NOTE: Please remove this line if https://github.com/AzureAD/azure-activedirectory-library-for-ruby/pull/50 is released. +require "adal/request_parameters" + require "adal" require "pry" From 3940c3c5f8b9f55154188bd8e9e1aea74e56c1f0 Mon Sep 17 00:00:00 2001 From: Michael Mainer Date: Wed, 22 Jul 2020 16:06:19 -0700 Subject: [PATCH 12/12] Add info that this client is not supported --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 3fef5f0cf0..599aba7850 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +### Microsoft Graph Ruby client library is not actively supported + +Please read this [post](https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/69) for more information and to provide feedback. + # Getting started with the Microsoft Graph Client Library for Ruby This client library is a release candidate and is still in preview status. As such, this library is **not production ready**. Please proceed at your own risk and continue to provide [feedback](https://github.com/microsoftgraph/msgraph-sdk-ruby/issues/new) as we iterate towards a production supported library.