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 pathentity_collection.py
More file actions
143 lines (112 loc) · 5.54 KB
/
Copy pathentity_collection.py
File metadata and controls
143 lines (112 loc) · 5.54 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 entity_request_builder # import EntityRequestBuilder
#from .entity_request_builder import EntityRequestBuilder
from ..model.entity import Entity
import json
class EntityCollectionRequest(CollectionRequestBase):
def __init__(self, request_url, client, options):
"""Initialize the EntityCollectionRequest
Args:
request_url (str): The url to perform the EntityCollectionRequest
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(EntityCollectionRequest, self).__init__(request_url, client, options)
def get(self):
"""Gets the EntityCollectionPage
Returns:
:class:`EntityCollectionPage<microsoft.msgraph.request.entity_collection.EntityCollectionPage>`:
The EntityCollectionPage
"""
self.method = "GET"
collection_response = EntityCollectionResponse(json.loads(self.send().content))
return self._page_from_response(collection_response)
class EntityCollectionRequestBuilder(RequestBuilderBase):
def __getitem__(self, key):
"""Get the EntityRequestBuilder with the specified key
Args:
key (str): The key to get a EntityRequestBuilder for
Returns:
:class:`EntityRequestBuilder<microsoft.msgraph.request.entity_request_builder.EntityRequestBuilder>`:
A EntityRequestBuilder for that key
"""
return entity_request_builder.EntityRequestBuilder(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 EntityCollectionRequest
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:`EntityCollectionRequest<microsoft.msgraph.request.entity_collection.EntityCollectionRequest>`:
The EntityCollectionRequest
"""
req = EntityCollectionRequest(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 EntityCollectionPage
Returns:
:class:`EntityCollectionPage<microsoft.msgraph.request.entity_collection.EntityCollectionPage>`:
The EntityCollectionPage
"""
return self.request().get()
class EntityCollectionResponse(CollectionResponseBase):
@property
def collection_page(self):
"""The collection page stored in the response JSON
Returns:
:class:`EntityCollectionPage<microsoft.msgraph.request.entity_collection.EntityCollectionPage>`:
The collection page
"""
if self._collection_page:
self._collection_page._prop_list = self._prop_dict["value"]
else:
self._collection_page = EntityCollectionPage(self._prop_dict["value"])
return self._collection_page
class EntityCollectionPage(CollectionPageBase):
def __getitem__(self, index):
"""Get the Entity at the index specified
Args:
index (int): The index of the item to get from the EntityCollectionPage
Returns:
:class:`Entity<microsoft.msgraph.model.entity.Entity>`:
The Entity at the index
"""
return Entity(self._prop_list[index])
def entity(self):
"""Get a generator of Entity within the EntityCollectionPage
Yields:
:class:`Entity<microsoft.msgraph.model.entity.Entity>`:
The next Entity in the collection
"""
for item in self._prop_list:
yield Entity(item)
def _init_next_page_request(self, next_page_link, client, options):
"""Initialize the next page request for the EntityCollectionPage
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 = EntityCollectionRequest(next_page_link, client, options)