move comment client in place
This commit is contained in:
@@ -1 +0,0 @@
|
||||
/Users/dementrock/coding/cs_comments_client_python/comment_client.py
|
||||
128
lms/lib/comment_client.py
Normal file
128
lms/lib/comment_client.py
Normal file
@@ -0,0 +1,128 @@
|
||||
import requests
|
||||
import json
|
||||
|
||||
SERVICE_HOST = 'http://localhost:4567'
|
||||
|
||||
PREFIX = SERVICE_HOST + '/api/v1'
|
||||
|
||||
def delete_threads(commentable_id, *args, **kwargs):
|
||||
return _perform_request('delete', _url_for_commentable_threads(commentable_id), *args, **kwargs)
|
||||
|
||||
def get_threads(commentable_id, recursive=False, *args, **kwargs):
|
||||
return _perform_request('get', _url_for_threads(commentable_id), {'recursive': recursive}, *args, **kwargs)
|
||||
|
||||
def create_thread(commentable_id, attributes, *args, **kwargs):
|
||||
return _perform_request('post', _url_for_threads(commentable_id), attributes, *args, **kwargs)
|
||||
|
||||
def get_thread(thread_id, recursive=False, *args, **kwargs):
|
||||
return _perform_request('get', _url_for_thread(thread_id), {'recursive': recursive}, *args, **kwargs)
|
||||
|
||||
def update_thread(thread_id, attributes, *args, **kwargs):
|
||||
return _perform_request('put', _url_for_thread(thread_id), attributes, *args, **kwargs)
|
||||
|
||||
def create_comment(thread_id, attributes, *args, **kwargs):
|
||||
return _perform_request('post', _url_for_thread_comments(thread_id), attributes, *args, **kwargs)
|
||||
|
||||
def delete_thread(thread_id, *args, **kwargs):
|
||||
return _perform_request('delete', _url_for_thread(thread_id), *args, **kwargs)
|
||||
|
||||
def get_comment(comment_id, recursive=False, *args, **kwargs):
|
||||
return _perform_request('get', _url_for_comment(comment_id), {'recursive': recursive}, *args, **kwargs)
|
||||
|
||||
def update_comment(comment_id, attributes, *args, **kwargs):
|
||||
return _perform_request('put', _url_for_comment(comment_id), attributes, *args, **kwargs)
|
||||
|
||||
def create_sub_comment(comment_id, attributes, *args, **kwargs):
|
||||
return _perform_request('post', _url_for_comment(comment_id), attributes, *args, **kwargs)
|
||||
|
||||
def delete_comment(comment_id, *args, **kwargs):
|
||||
return _perform_request('delete', _url_for_comment(comment_id), *args, **kwargs)
|
||||
|
||||
def vote_for_comment(comment_id, user_id, value, *args, **kwargs):
|
||||
return _perform_request('put', _url_for_vote_comment(comment_id), {'user_id': user_id, 'value': value}, *args, **kwargs)
|
||||
|
||||
def undo_vote_for_comment(comment_id, user_id, *args, **kwargs):
|
||||
return _perform_request('delete', _url_for_vote_comment(comment_id), *args, **kwargs)
|
||||
|
||||
def vote_for_thread(thread_id, user_id, value, *args, **kwargs):
|
||||
return _perform_request('put', _url_for_vote_thread(thread_id), {'user_id': user_id, 'value': value}, *args, **kwargs)
|
||||
|
||||
def undo_vote_for_thread(thread_id, user_id, *args, **kwargs):
|
||||
return _perform_request('delete', _url_for_vote_thread(thread_id), *args, **kwargs)
|
||||
|
||||
def get_notifications(user_id, *args, **kwargs):
|
||||
return _perform_request('get', _url_for_notifications(user_id), *args, **kwargs)
|
||||
|
||||
def get_user_info(user_id, complete=True, *args, **kwargs):
|
||||
return _perform_request('get', _url_for_user(user_id), {'complete': complete}, *args, **kwargs)
|
||||
|
||||
def subscribe(user_id, subscription_detail, *args, **kwargs):
|
||||
return _perform_request('post', _url_for_subscription(user_id), subscription_detail, *args, **kwargs)
|
||||
|
||||
def subscribe_user(user_id, followed_user_id, *args, **kwargs):
|
||||
return subscribe(user_id, {'source_type': 'user', 'source_id': followed_user_id})
|
||||
|
||||
follow = subscribe_user
|
||||
|
||||
def subscribe_thread(user_id, thread_id, *args, **kwargs):
|
||||
return subscribe(user_id, {'source_type': 'thread', 'source_id': thread_id})
|
||||
|
||||
def subscribe_commentable(user_id, commentable_id, *args, **kwargs):
|
||||
return subscribe(user_id, {'source_type': 'other', 'source_id': commentable_id})
|
||||
|
||||
def unsubscribe(user_id, subscription_detail, *args, **kwargs):
|
||||
return _perform_request('delete', _url_for_subscription(user_id), subscription_detail, *args, **kwargs)
|
||||
|
||||
def unsubscribe_user(user_id, followed_user_id, *args, **kwargs):
|
||||
return unsubscribe(user_id, {'source_type': 'user', 'source_id': followed_user_id})
|
||||
|
||||
unfollow = unsubscribe_user
|
||||
|
||||
def unsubscribe_thread(user_id, thread_id, *args, **kwargs):
|
||||
return unsubscribe(user_id, {'source_type': 'thread', 'source_id': thread_id})
|
||||
|
||||
def unsubscribe_commentable(user_id, commentable_id, *args, **kwargs):
|
||||
return unsubscribe(user_id, {'source_type': 'other', 'source_id': commentable_id})
|
||||
|
||||
def search(text, commentable_id=None, *args, **kwargs):
|
||||
return _perform_request('get', _url_for_search(), {'text': text, 'commentable_id': commentable_id}, *args, **kwargs)
|
||||
|
||||
def _perform_request(method, url, data_or_params=None, *args, **kwargs):
|
||||
if method in ['post', 'put', 'patch']:
|
||||
response = requests.request(method, url, data=data_or_params)
|
||||
else:
|
||||
response = requests.request(method, url, params=data_or_params)
|
||||
if kwargs.get("raw", False):
|
||||
return response.text
|
||||
else:
|
||||
return json.loads(response.text)
|
||||
|
||||
def _url_for_threads(commentable_id):
|
||||
return "{prefix}/{commentable_id}/threads".format(prefix=PREFIX, commentable_id=commentable_id)
|
||||
|
||||
def _url_for_thread(thread_id):
|
||||
return "{prefix}/threads/{thread_id}".format(prefix=PREFIX, thread_id=thread_id)
|
||||
|
||||
def _url_for_thread_comments(thread_id):
|
||||
return "{prefix}/threads/{thread_id}/comments".format(prefix=PREFIX, thread_id=thread_id)
|
||||
|
||||
def _url_for_comment(comment_id):
|
||||
return "{prefix}/comments/{comment_id}".format(prefix=PREFIX, comment_id=comment_id)
|
||||
|
||||
def _url_for_vote_comment(comment_id):
|
||||
return "{prefix}/comments/{comment_id}/votes".format(prefix=PREFIX, comment_id=comment_id)
|
||||
|
||||
def _url_for_vote_thread(thread_id):
|
||||
return "{prefix}/threads/{thread_id}/votes".format(prefix=PREFIX, thread_id=thread_id)
|
||||
|
||||
def _url_for_notifications(user_id):
|
||||
return "{prefix}/users/{user_id}/notifications".format(prefix=PREFIX, user_id=user_id)
|
||||
|
||||
def _url_for_subscription(user_id):
|
||||
return "{prefix}/users/{user_id}/subscriptions".format(prefix=PREFIX, user_id=user_id)
|
||||
|
||||
def _url_for_user(user_id):
|
||||
return "{prefix}/users/{user_id}".format(prefix=PREFIX, user_id=user_id)
|
||||
|
||||
def _url_for_search():
|
||||
return "{prefix}/search".format(prefix=PREFIX)
|
||||
Reference in New Issue
Block a user