from canvas.view_guards import require_user from drawquest.api_decorators import api_decorator from drawquest.apps.feed.redis_models import feed_comments_for_user urlpatterns = [] api = api_decorator(urlpatterns) @api('followee_comments') @require_user def feed_items(request, offset='top', direction='next'): comments, pagination = feed_comments_for_user(request.user, offset=offset, direction=direction, viewer=request.user) return { 'comments': comments, 'pagination': pagination, }
from canvas.exceptions import ServiceError from canvas.forms import validate_and_clean_comment from canvas.models import Visibility from canvas.redis_models import RateLimit, RealtimeChannel from canvas.templatetags.jinja_base import render_jinja_to_string from canvas.view_guards import require_staff, require_user from drawquest import knobs, economy from drawquest import sns_publishing from drawquest.api_decorators import api_decorator from drawquest.apps.drawquest_auth.models import User from drawquest.apps.quests.models import Quest, archived_quests from drawquest.apps.ugq import models urlpatterns = [] api = api_decorator(urlpatterns) @api('create_quest') @require_user def create_quest(request, title, content_id=None, invite_followees=False, facebook_share=False, facebook_access_token=None, twitter_share=False, twitter_access_token=None, twitter_access_token_secret=None, email_share=False, email_recipients=[], resolve_share_ids=[]): if not request.user.is_staff and not settings.STAGING: prefix = 'user:{}:create_quest_limit:'.format(request.user.id) if not RateLimit(prefix+'h', 60, 60*60).allowed() or not RateLimit(prefix+'d', 100, 8*60*60).allowed(): raise ServiceError("Attempting to create quests too quickly.") _, _, content, _, title = validate_and_clean_comment(
def after_setUp(self): urls = patterns('') self.api = api_decorator(urls)
url(r'^whitelisting/', include('drawquest.apps.whitelisting.api')), # Only used for the admin. url(r'^comment/', include('apps.comments.api')), # Disabled for now for perf. #url(r'^', include('apps.analytics.api')), ) if settings.DRAWQUEST_SEARCH: urls += patterns( 'drawquest.api', url(r'^search/', include('drawquest.apps.search.api')), ) api = api_decorator(urls) @api('metric/record') def metric_record(request, name, info={}): """ Currently a no-op. """ @api('user/profile') def user_profile(request, username): return models.user_profile_for_viewer(username, viewer=request.user) @api('user/change_profile') @require_user def change_profile(request,
url(r'^upload$', api_upload), url(r'^whitelisting/', include('drawquest.apps.whitelisting.api')), # Only used for the admin. url(r'^comment/', include('apps.comments.api')), # Disabled for now for perf. #url(r'^', include('apps.analytics.api')), ) if settings.DRAWQUEST_SEARCH: urls += patterns('drawquest.api', url(r'^search/', include('drawquest.apps.search.api')), ) api = api_decorator(urls) @api('metric/record') def metric_record(request, name, info={}): """ Currently a no-op. """ @api('user/profile') def user_profile(request, username): return models.user_profile_for_viewer(username, viewer=request.user) @api('user/change_profile') @require_user def change_profile(request, old_password=None, new_password=None, new_email=None, bio=None): if bio is not None: request.user.userinfo.bio_text = bio request.user.userinfo.save()
def after_setUp(self): urls = patterns('') self.api = api_decorator(urls)