This repository was archived by the owner on Jan 31, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathdrive_collection.py
More file actions
143 lines (112 loc) · 5.48 KB
/
Copy pathdrive_collection.py
File metadata and controls
143 lines (112 loc) · 5.48 KB
1
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# -*- coding: utf-8 -*-
"""
# Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information.
#
# This file was generated and any changes will be overwritten.
"""
from __future__ import unicode_literals
from ..collection_base import CollectionRequestBase, CollectionResponseBase, CollectionPageBase
from ..request_builder_base import RequestBuilderBase
from ..request import drive_request_builder # import DriveRequestBuilder
#from .drive_request_builder import DriveRequestBuilder
from ..model.drive import Drive
import json
class DriveCollectionRequest(CollectionRequestBase):
def __init__(self, request_url, client, options):
"""Initialize the DriveCollectionRequest
Args:
request_url (str): The url to perform the DriveCollectionRequest
on
client (:class:`GraphClient<microsoft.msgraph.request.graph_client.GraphClient>`):
The client which will be used for the request
options (list of :class:`Option<microsoft.msgraph.options.Option>`):
A list of options to pass into the request
"""
super(DriveCollectionRequest, self).__init__(request_url, client, options)
def get(self):
"""Gets the DriveCollectionPage
Returns:
:class:`DriveCollectionPage<microsoft.msgraph.request.drive_collection.DriveCollectionPage>`:
The DriveCollectionPage
"""
self.method = "GET"
collection_response = DriveCollectionResponse(json.loads(self.send().content))
return self._page_from_response(collection_response)
class DriveCollectionRequestBuilder(RequestBuilderBase):
def __getitem__(self, key):
"""Get the DriveRequestBuilder with the specified key
Args:
key (str): The key to get a DriveRequestBuilder for
Returns:
:class:`DriveRequestBuilder<microsoft.msgraph.request.drive_request_builder.DriveRequestBuilder>`:
A DriveRequestBuilder for that key
"""
return drive_request_builder.DriveRequestBuilder(self.append_to_request_url(str(key)), self._client)
def request(self, expand=None, select=None, top=None, order_by=None, options=None):
"""Builds the DriveCollectionRequest
Args:
expand (str): Default None, comma-separated list of relationships
to expand in the response.
select (str): Default None, comma-separated list of properties to
include in the response.
top (int): Default None, the number of items to return in a result.
order_by (str): Default None, comma-separated list of properties
that are used to sort the order of items in the response.
options (list of :class:`Option<microsoft.msgraph.options.Option>`):
A list of options to pass into the request. Defaults to None.
Returns:
:class:`DriveCollectionRequest<microsoft.msgraph.request.drive_collection.DriveCollectionRequest>`:
The DriveCollectionRequest
"""
req = DriveCollectionRequest(self._request_url, self._client, options)
req._set_query_options(expand=expand, select=select, top=top, order_by=order_by)
return req
def get(self):
"""Gets the DriveCollectionPage
Returns:
:class:`DriveCollectionPage<microsoft.msgraph.request.drive_collection.DriveCollectionPage>`:
The DriveCollectionPage
"""
return self.request().get()
class DriveCollectionResponse(CollectionResponseBase):
@property
def collection_page(self):
"""The collection page stored in the response JSON
Returns:
:class:`DriveCollectionPage<microsoft.msgraph.request.drive_collection.DriveCollectionPage>`:
The collection page
"""
if self._collection_page:
self._collection_page._prop_list = self._prop_dict["value"]
else:
self._collection_page = DriveCollectionPage(self._prop_dict["value"])
return self._collection_page
class DriveCollectionPage(CollectionPageBase):
def __getitem__(self, index):
"""Get the Drive at the index specified
Args:
index (int): The index of the item to get from the DriveCollectionPage
Returns:
:class:`Drive<microsoft.msgraph.model.drive.Drive>`:
The Drive at the index
"""
return Drive(self._prop_list[index])
def drive(self):
"""Get a generator of Drive within the DriveCollectionPage
Yields:
:class:`Drive<microsoft.msgraph.model.drive.Drive>`:
The next Drive in the collection
"""
for item in self._prop_list:
yield Drive(item)
def _init_next_page_request(self, next_page_link, client, options):
"""Initialize the next page request for the DriveCollectionPage
Args:
next_page_link (str): The URL for the next page request
to be sent to
client (:class:`GraphClient<microsoft.msgraph.model.graph_client.GraphClient>`:
The client to be used for the request
options (list of :class:`Option<microsoft.msgraph.options.Option>`:
A list of options
"""
self._next_page_request = DriveCollectionRequest(next_page_link, client, options)