Compare commits

...

8 Commits

Author SHA1 Message Date
Ben Lopatin acdcb03283 Version bump 0.6.0 2016-07-22 08:48:57 -04:00
Ben Lopatin 6bd73fdd5c Merge pull request #4 from Meal-Mentor/master
Added method to add group to the user
2016-07-22 08:46:22 -04:00
Scott Nixon c13b456b79 Added method to add group to the user 2016-07-19 11:33:27 -07:00
Ben Lopatin 977885967d Update makefile 2016-06-13 11:41:28 -04:00
Ben Lopatin b9066ca637 Version bump 0.5.0 2016-06-13 11:37:12 -04:00
Ben Lopatin 77254f441c Merge pull request #3 from msfernandes/badges_endpoint
Added badges endpoint to pydiscourse
2016-06-10 11:12:26 -04:00
Matheus Fernandes 66089011f7 Added 'user-badges' endpoint
Signed-off-by: Matheus Fernandes <matheus.souza.fernandes@gmail.com>
2016-06-10 11:46:56 -03:00
Matheus Fernandes fe317b6be8 Added badges endpoint to pydiscourse
Signed-off-by: Matheus Fernandes <matheus.souza.fernandes@gmail.com>
2016-06-10 10:59:03 -03:00
7 changed files with 91 additions and 8 deletions
+2
View File
@@ -4,3 +4,5 @@ Marc Sibson
James Potter
Ben Lopatin
Daniel Zohar
Matheus Fernandes
Scott Nixon
+10
View File
@@ -3,6 +3,16 @@
Release history
===============
0.6.0
-----
* Adds method to add user to group by user ID
0.5.0
-----
* Adds badges functionality
0.4.0
-----
+7 -5
View File
@@ -37,13 +37,15 @@ test-all: ## Run all tox test environments, parallelized
check: clean-build clean-pyc clean-test lint test-coverage
release: clean ## Uploads new source and wheel distributions (cleans first)
python setup.py sdist upload
python setup.py bdist_wheel upload
build: clean ## Create distribution files for release
python setup.py sdist bdist_wheel
dist: clean ## Creates new source and wheel distributions (cleans first)
release: build ## Create distribution files and publish to PyPI
python setup.py check -r -s
twine upload dist/*
sdist: clean ##sdist Create source distribution only
python setup.py sdist
python setup.py bdist_wheel
ls -l dist
api-docs: ## Build autodocs from docstrings
+2 -2
View File
@@ -51,9 +51,9 @@ copyright = u'2014, Marc Sibson'
# built documents.
#
# The short X.Y version.
version = '0.4'
version = '0.6'
# The full version, including alpha/beta/rc tags.
release = '0.4.0'
release = '0.6.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
+1 -1
View File
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
__version__ = '0.4.0'
__version__ = '0.6.0'
from pydiscourse.client import DiscourseClient
+54
View File
@@ -541,6 +541,43 @@ class DiscourseClient(object):
kwargs['term'] = term
return self._get('/search.json', **kwargs)
def badges(self, **kwargs):
"""
Args:
**kwargs:
Returns:
"""
return self._get('/admin/badges.json', **kwargs)
def grant_badge_to(self, username, badge_id, **kwargs):
"""
Args:
username:
badge_id:
**kwargs:
Returns:
"""
return self._post('/user_badges', username=username, badge_id=badge_id, **kwargs)
def user_badges(self, username, **kwargs):
"""
Args:
username:
Returns:
"""
return self._get('/user-badges/{}.json'.format(username))
def create_category(self, name, color, text_color='FFFFFF',
permissions=None, parent=None, **kwargs):
"""
@@ -713,6 +750,23 @@ class DiscourseClient(object):
"""
return self._put("/admin/groups/{0}/members.json".format(groupid), usernames=username)
def add_user_to_group(self, groupid, userid):
"""
Add a member to a group by with user id.
Args:
groupid: the ID of the group
userid: the member id
Returns:
JSON API response
Raises:
DiscourseError if user is already member of group
"""
return self._post("/admin/users/{0}/groups".format(userid), group_id=groupid)
def delete_group_member(self, groupid, userid):
"""
Deletes a member from a group by user ID
+15
View File
@@ -120,6 +120,11 @@ class TestUser(ClientBaseTestCase):
self.client.unsuspend(123)
self.assertRequestCalled(request, 'PUT', '/admin/users/123/unsuspend')
def test_user_bagdes(self, request):
prepare_response(request)
self.client.user_badges('username')
self.assertRequestCalled(request, 'GET', '/user-badges/{}.json'.format('username'))
@mock.patch('requests.request')
class TestTopics(ClientBaseTestCase):
@@ -175,3 +180,13 @@ class MiscellaneousTests(ClientBaseTestCase):
prepare_response(request)
self.client.users()
self.assertRequestCalled(request, 'GET', '/admin/users/list/active.json')
def test_badges(self, request):
prepare_response(request)
self.client.badges()
self.assertRequestCalled(request, 'GET', '/admin/badges.json')
def test_grant_badge_to(self, request):
prepare_response(request)
self.client.grant_badge_to('username', 1)
self.assertRequestCalled(request, 'POST', '/user_badges', username='username', badge_id=1)