microslop_one_drive 2.0.1 → 2.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 +4 -4
- data/lib/microslop_one_drive/client.rb +46 -3
- data/lib/microslop_one_drive/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e8dad115ceda6d13e87dfa8ce0e5d9b1d9e451a5000da6fa4feea51a66cf0a5f
|
|
4
|
+
data.tar.gz: 32162a0c944a59cfcdf3a80497d599e899d995fde9286555f11b4d09223b8cfc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fe6c984e15650dc7a03c4299674122518bb55dabe9aac1943d03d0792003a0580a231a121cb7a93dd2dadaafd587992f2a747599d0eb1faf03f79bc272661db1
|
|
7
|
+
data.tar.gz: 5e3d86ad896bd39c942d014e2b33cc58a0b80db859b36c856049396dee10d99b3abff74af702a5a9abe1d05376746bf0c85403be7853d80f10c05c0d88f07fca
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
1
3
|
module MicroslopOneDrive
|
|
2
4
|
class Client
|
|
3
5
|
BASE_URL = "https://graph.microsoft.com/v1.0".freeze
|
|
4
6
|
BATCH_REQUEST_LIMIT = 20.freeze
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
# @param access_token [String] OAuth access token for Microsoft Graph.
|
|
9
|
+
# @param logger [Object, nil] Optional logger (e.g. Rails.logger) that responds to +#info+, +#debug+, +#warn+, +#error+.
|
|
10
|
+
# When set, all API requests and responses are logged.
|
|
11
|
+
def initialize(access_token, logger: nil)
|
|
7
12
|
@access_token = access_token
|
|
13
|
+
@logger = logger
|
|
8
14
|
|
|
9
15
|
@headers = {
|
|
10
16
|
"Authorization" => "Bearer #{@access_token}",
|
|
@@ -164,11 +170,48 @@ module MicroslopOneDrive
|
|
|
164
170
|
private
|
|
165
171
|
|
|
166
172
|
def get(path:, query: {})
|
|
167
|
-
|
|
173
|
+
url = "#{BASE_URL}/#{path}"
|
|
174
|
+
|
|
175
|
+
log_request("GET", url, query: query)
|
|
176
|
+
|
|
177
|
+
response = HTTParty.get(url, headers: @headers, query: query)
|
|
178
|
+
|
|
179
|
+
log_response(response, "GET", url)
|
|
180
|
+
|
|
181
|
+
response
|
|
168
182
|
end
|
|
169
183
|
|
|
170
184
|
def post(path:, body:)
|
|
171
|
-
|
|
185
|
+
url = "#{BASE_URL}/#{path}"
|
|
186
|
+
|
|
187
|
+
log_request("POST", url, body: body)
|
|
188
|
+
|
|
189
|
+
response = HTTParty.post(url, headers: @headers, body: body)
|
|
190
|
+
|
|
191
|
+
log_response(response, "POST", url)
|
|
192
|
+
|
|
193
|
+
response
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def log_request(method, url, query: nil, body: nil)
|
|
197
|
+
return unless @logger
|
|
198
|
+
|
|
199
|
+
@logger.info ""
|
|
200
|
+
@logger.info "==================== START MicroslopOneDrive #{method} #{url} ===================="
|
|
201
|
+
@logger.info "Request method: #{method}"
|
|
202
|
+
@logger.info "Request url: #{url}"
|
|
203
|
+
@logger.info "Request query: #{query.inspect}" if query && query.any?
|
|
204
|
+
@logger.info "Request body: #{body.inspect}" if body
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def log_response(response, method, url)
|
|
208
|
+
return unless @logger
|
|
209
|
+
|
|
210
|
+
@logger.info ""
|
|
211
|
+
@logger.info "Response code: #{response.code}"
|
|
212
|
+
@logger.info "Response body:" if response.parsed_response
|
|
213
|
+
@logger.info JSON.pretty_generate(response.parsed_response) if response.parsed_response
|
|
214
|
+
@logger.info "==================== END MicroslopOneDrive #{method} #{url} ===================="
|
|
172
215
|
end
|
|
173
216
|
|
|
174
217
|
def handle_error(response)
|