-
Notifications
You must be signed in to change notification settings - Fork 169
/
favorite.py
39 lines (29 loc) · 1.36 KB
/
favorite.py
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
from __future__ import absolute_import, division, print_function, unicode_literals
from six import python_2_unicode_compatible
from canvasapi.canvas_object import CanvasObject
from canvasapi.util import combine_kwargs
@python_2_unicode_compatible
class Favorite(CanvasObject):
def __str__(self):
return "{} ({})".format(self.context_type, self.context_id)
def remove(self, **kwargs):
"""
Remove a course or group from the current user's favorites.
:calls: :Course: `DELETE /api/v1/users/self/favorites/courses/:id \
<https://canvas.instructure.com/doc/api/favorites.html#method.favorites.remove_favorite_course>`_
:Group: `DELETE /api/v1/users/self/favorites/groups/:id \
<https://canvas.instructure.com/doc/api/favorites.html#method.favorites.remove_favorite_groups>`_
:rtype: :class:`canvasapi.favorite.Favorite`
"""
if(self.context_type == "course"):
id = self.context_id
uri_str = 'users/self/favorites/courses/{}'
elif(self.context_type == "group"):
id = self.context_id
uri_str = 'users/self/favorites/groups/{}'
response = self._requester.request(
'DELETE',
uri_str.format(id),
_kwargs=combine_kwargs(**kwargs)
)
return Favorite(self._requester, response.json())