Skip to content

Commit cf24321

Browse files
authored
Merge pull request #149 from Microsoft/users/tedchamb/dev
regen 4.0 after adding support for methods that return header values as part of the payload.
2 parents e692401 + 5028a6e commit cf24321

File tree

3 files changed

+170
-1
lines changed

3 files changed

+170
-1
lines changed

vsts/vsts/dashboard/v4_0/dashboard_client.py

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,42 @@ def get_widget(self, team_context, dashboard_id, widget_id):
320320
route_values=route_values)
321321
return self._deserialize('Widget', response)
322322

323+
def get_widgets(self, team_context, dashboard_id, eTag=None):
324+
"""GetWidgets.
325+
[Preview API]
326+
:param :class:`<TeamContext> <dashboard.v4_0.models.TeamContext>` team_context: The team context for the operation
327+
:param str dashboard_id:
328+
:param String eTag: Dashboard Widgets Version
329+
:rtype: :class:`<WidgetsVersionedList> <dashboard.v4_0.models.WidgetsVersionedList>`
330+
"""
331+
project = None
332+
team = None
333+
if team_context is not None:
334+
if team_context.project_id:
335+
project = team_context.project_id
336+
else:
337+
project = team_context.project
338+
if team_context.team_id:
339+
team = team_context.team_id
340+
else:
341+
team = team_context.team
342+
343+
route_values = {}
344+
if project is not None:
345+
route_values['project'] = self._serialize.url('project', project, 'string')
346+
if team is not None:
347+
route_values['team'] = self._serialize.url('team', team, 'string')
348+
if dashboard_id is not None:
349+
route_values['dashboardId'] = self._serialize.url('dashboard_id', dashboard_id, 'str')
350+
response = self._send(http_method='GET',
351+
location_id='bdcff53a-8355-4172-a00a-40497ea23afc',
352+
version='4.0-preview.2',
353+
route_values=route_values)
354+
response_object = models.WidgetsVersionedList()
355+
response_object.widgets = self._deserialize('[Widget]', self._unwrap_collection(response))
356+
response_object.eTag = response.headers.get('ETag')
357+
return response_object
358+
323359
def replace_widget(self, widget, team_context, dashboard_id, widget_id):
324360
"""ReplaceWidget.
325361
[Preview API]
@@ -358,6 +394,45 @@ def replace_widget(self, widget, team_context, dashboard_id, widget_id):
358394
content=content)
359395
return self._deserialize('Widget', response)
360396

397+
def replace_widgets(self, widgets, team_context, dashboard_id, eTag=None):
398+
"""ReplaceWidgets.
399+
[Preview API]
400+
:param [Widget] widgets:
401+
:param :class:`<TeamContext> <dashboard.v4_0.models.TeamContext>` team_context: The team context for the operation
402+
:param str dashboard_id:
403+
:param String eTag: Dashboard Widgets Version
404+
:rtype: :class:`<WidgetsVersionedList> <dashboard.v4_0.models.WidgetsVersionedList>`
405+
"""
406+
project = None
407+
team = None
408+
if team_context is not None:
409+
if team_context.project_id:
410+
project = team_context.project_id
411+
else:
412+
project = team_context.project
413+
if team_context.team_id:
414+
team = team_context.team_id
415+
else:
416+
team = team_context.team
417+
418+
route_values = {}
419+
if project is not None:
420+
route_values['project'] = self._serialize.url('project', project, 'string')
421+
if team is not None:
422+
route_values['team'] = self._serialize.url('team', team, 'string')
423+
if dashboard_id is not None:
424+
route_values['dashboardId'] = self._serialize.url('dashboard_id', dashboard_id, 'str')
425+
content = self._serialize.body(widgets, '[Widget]')
426+
response = self._send(http_method='PUT',
427+
location_id='bdcff53a-8355-4172-a00a-40497ea23afc',
428+
version='4.0-preview.2',
429+
route_values=route_values,
430+
content=content)
431+
response_object = models.WidgetsVersionedList()
432+
response_object.widgets = self._deserialize('[Widget]', self._unwrap_collection(response))
433+
response_object.eTag = response.headers.get('ETag')
434+
return response_object
435+
361436
def update_widget(self, widget, team_context, dashboard_id, widget_id):
362437
"""UpdateWidget.
363438
[Preview API]
@@ -396,6 +471,45 @@ def update_widget(self, widget, team_context, dashboard_id, widget_id):
396471
content=content)
397472
return self._deserialize('Widget', response)
398473

474+
def update_widgets(self, widgets, team_context, dashboard_id, eTag=None):
475+
"""UpdateWidgets.
476+
[Preview API]
477+
:param [Widget] widgets:
478+
:param :class:`<TeamContext> <dashboard.v4_0.models.TeamContext>` team_context: The team context for the operation
479+
:param str dashboard_id:
480+
:param String eTag: Dashboard Widgets Version
481+
:rtype: :class:`<WidgetsVersionedList> <dashboard.v4_0.models.WidgetsVersionedList>`
482+
"""
483+
project = None
484+
team = None
485+
if team_context is not None:
486+
if team_context.project_id:
487+
project = team_context.project_id
488+
else:
489+
project = team_context.project
490+
if team_context.team_id:
491+
team = team_context.team_id
492+
else:
493+
team = team_context.team
494+
495+
route_values = {}
496+
if project is not None:
497+
route_values['project'] = self._serialize.url('project', project, 'string')
498+
if team is not None:
499+
route_values['team'] = self._serialize.url('team', team, 'string')
500+
if dashboard_id is not None:
501+
route_values['dashboardId'] = self._serialize.url('dashboard_id', dashboard_id, 'str')
502+
content = self._serialize.body(widgets, '[Widget]')
503+
response = self._send(http_method='PATCH',
504+
location_id='bdcff53a-8355-4172-a00a-40497ea23afc',
505+
version='4.0-preview.2',
506+
route_values=route_values,
507+
content=content)
508+
response_object = models.WidgetsVersionedList()
509+
response_object.widgets = self._deserialize('[Widget]', self._unwrap_collection(response))
510+
response_object.eTag = response.headers.get('ETag')
511+
return response_object
512+
399513
def get_widget_metadata(self, contribution_id):
400514
"""GetWidgetMetadata.
401515
[Preview API]

vsts/vsts/vss_client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ def _unwrap_collection(self, response):
105105
collection = wrapper.value
106106
return collection
107107

108-
109108
def _create_request_message(self, http_method, location_id, route_values=None,
110109
query_parameters=None):
111110
location = self._get_resource_location(location_id)

vsts/vsts/wiki/v4_0/wiki_client.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,62 @@ def __init__(self, base_url=None, creds=None):
2525

2626
resource_area_identifier = 'bf7d82a0-8aa5-4613-94ef-6172a5ea01f3'
2727

28+
def create_attachment(self, upload_stream, project, wiki_id, name):
29+
"""CreateAttachment.
30+
[Preview API] Use this API to create an attachment in the wiki.
31+
:param object upload_stream: Stream to upload
32+
:param str project: Project ID or project name
33+
:param str wiki_id: ID of the wiki in which the attachment is to be created.
34+
:param str name: Name of the attachment that is to be created.
35+
:rtype: :class:`<WikiAttachmentResponse> <wiki.v4_0.models.WikiAttachmentResponse>`
36+
"""
37+
route_values = {}
38+
if project is not None:
39+
route_values['project'] = self._serialize.url('project', project, 'str')
40+
if wiki_id is not None:
41+
route_values['wikiId'] = self._serialize.url('wiki_id', wiki_id, 'str')
42+
query_parameters = {}
43+
if name is not None:
44+
query_parameters['name'] = self._serialize.query('name', name, 'str')
45+
content = self._serialize.body(upload_stream, 'object')
46+
response = self._send(http_method='PUT',
47+
location_id='c4382d8d-fefc-40e0-92c5-49852e9e17c0',
48+
version='4.0-preview.1',
49+
route_values=route_values,
50+
query_parameters=query_parameters,
51+
content=content,
52+
media_type='application/octet-stream')
53+
response_object = models.WikiAttachmentResponse()
54+
response_object.attachment = self._deserialize('WikiAttachment', response)
55+
response_object.eTag = response.headers.get('ETag')
56+
return response_object
57+
58+
def get_attachment(self, project, wiki_id, name):
59+
"""GetAttachment.
60+
[Preview API] Temp API
61+
:param str project: Project ID or project name
62+
:param str wiki_id:
63+
:param str name:
64+
:rtype: :class:`<WikiAttachmentResponse> <wiki.v4_0.models.WikiAttachmentResponse>`
65+
"""
66+
route_values = {}
67+
if project is not None:
68+
route_values['project'] = self._serialize.url('project', project, 'str')
69+
if wiki_id is not None:
70+
route_values['wikiId'] = self._serialize.url('wiki_id', wiki_id, 'str')
71+
query_parameters = {}
72+
if name is not None:
73+
query_parameters['name'] = self._serialize.query('name', name, 'str')
74+
response = self._send(http_method='GET',
75+
location_id='c4382d8d-fefc-40e0-92c5-49852e9e17c0',
76+
version='4.0-preview.1',
77+
route_values=route_values,
78+
query_parameters=query_parameters)
79+
response_object = models.WikiAttachmentResponse()
80+
response_object.attachment = self._deserialize('WikiAttachment', response)
81+
response_object.eTag = response.headers.get('ETag')
82+
return response_object
83+
2884
def get_pages(self, project, wiki_id, path=None, recursion_level=None, version_descriptor=None):
2985
"""GetPages.
3086
[Preview API] Gets metadata or content of the wiki pages under the provided page path.

0 commit comments

Comments
 (0)