コード例 #1
0
ファイル: views.py プロジェクト: yacine15/django-htk
def update(request):
    """Updates a User or UserProfile

    It is important to note that UserUpdateForm only updates the fields on User and UserProfile that are passed in, and does not have to update the entire object
    """
    user = request.user
    from htk.apps.accounts.forms.update import UserUpdateForm
    user_update_form = UserUpdateForm(user, request.POST)
    user_profile_update_form = user_update_form.get_profile_form()
    if user_update_form.is_valid() and user_profile_update_form.is_valid():
        updated_user = user_update_form.save()
        updated_profile = user_profile_update_form.save()
        response = json_response_okay()
    else:
        (
            errors,
            field_errors,
        ) = get_form_errors(user_update_form)
        (
            profile_errors,
            profile_field_errors,
        ) = get_form_errors(user_profile_update_form)
        obj = {
            HTK_API_JSON_KEY_STATUS: HTK_API_JSON_VALUE_ERROR,
            'errors': errors + profile_errors,
            'field_errors': field_errors + profile_field_errors,
        }
        response = json_response(obj)
    return response
コード例 #2
0
def get_user_leagues(request):
    #    data = wrap_data(request)
    user = request.user
    client = get_yahoo_fantasy_sports_client_for_user(user)
    leagues = client.get_user_leagues()
    #data['api_response'] = leagues
    response = json_response(leagues.json_data)

    #response = _r('htk/lib/yahoo/fantasysports/api_response.html', data)
    return response
コード例 #3
0
ファイル: views.py プロジェクト: PocketGM/django-htk
def get_user_leagues(request):
#    data = wrap_data(request)
    user = request.user
    client = get_yahoo_fantasy_sports_client_for_user(user)
    leagues = client.get_user_leagues()
    #data['api_response'] = leagues
    response = json_response(leagues.json_data)
    
    #response = _r('htk/lib/yahoo/fantasysports/api_response.html', data)
    return response
コード例 #4
0
ファイル: views.py プロジェクト: pkkup/django-htk
def async_task_status(request, result_id):
    from celery.result import AsyncResult
    result = AsyncResult(result_id)

    # check if the task is ready
    from htk.api.utils import json_response
    response = json_response({
        # possible states: PENDING | STARTED | RETRY | FAILURE | SUCCESS
        # see celery/result.py
        'state' : result.state,
        'ready' : result.ready(),
    })
    return response
コード例 #5
0
def async_task_status(request, result_id):
    from celery.result import AsyncResult
    result = AsyncResult(result_id)

    # check if the task is ready
    from htk.api.utils import json_response
    response = json_response({
        # possible states: PENDING | STARTED | RETRY | FAILURE | SUCCESS
        # see celery/result.py
        'state' : result.state,
        'ready' : result.ready(),
    })
    return response
コード例 #6
0
ファイル: views.py プロジェクト: yacine15/django-htk
def username(request):
    """Update a User's username
    """
    user = request.user
    username_form = ChangeUsernameForm(user, request.POST)
    if username_form.is_valid():
        username_form.save(user)
        response = json_response_okay()
    else:
        obj = {
            HTK_API_JSON_KEY_STATUS: HTK_API_JSON_VALUE_ERROR,
            'error': get_form_error(username_form)
        }
        response = json_response(obj)
    return response
コード例 #7
0
ファイル: views.py プロジェクト: PocketGM/django-htk
def username(request):
    """Update a User's username
    """
    user = request.user
    username_form = ChangeUsernameForm(user, request.POST)
    if username_form.is_valid():
        username_form.save(user)
        response = json_response_okay()
    else:
        obj = {
            HTK_API_JSON_KEY_STATUS: HTK_API_JSON_VALUE_ERROR,
            'error' : get_form_error(username_form)
        }
        response = json_response(obj)
    return response
コード例 #8
0
ファイル: views.py プロジェクト: aweandreverence/django-htk
def slack_webhook_view(request):
    """Handles a Slack webhook request

    https://api.slack.com/outgoing-webhooks
    """
    event = extract_post_params(request.POST, SLACK_WEBHOOK_PARAMS)
    if is_valid_webhook_event(event, request):
        from htk.lib.slack.utils import handle_event
        payload = handle_event(event)
        if payload:
            response = json_response(payload)
        else:
            response = HttpResponse(status=200)
    else:
        raise Http404
    return response
コード例 #9
0
ファイル: views.py プロジェクト: hacktoolkit/django-htk
def slack_webhook_view(request):
    """Handles a Slack webhook request

    https://api.slack.com/outgoing-webhooks
    """
    event = extract_post_params(request.POST, SLACK_WEBHOOK_PARAMS)
    if is_valid_webhook_event(event, request):
        from htk.lib.slack.utils import handle_event
        payload = handle_event(event)
        if payload:
            response = json_response(payload)
        else:
            response = HttpResponse(status=200)
    else:
        raise Http404
    return response
コード例 #10
0
ファイル: views.py プロジェクト: PocketGM/django-htk
def email_add(request):
    user = request.user
    add_email_form = AddEmailForm(user, request.POST)
    if add_email_form.is_valid():
        domain = request.get_host()
        user_email = add_email_form.save(domain=domain)
        response = json_response_okay()
    else:
        errors = []
        for error in add_email_form.non_field_errors():
            errors.append(error)
        obj = {
            HTK_API_JSON_KEY_STATUS: HTK_API_JSON_VALUE_ERROR,
            'errors': errors,
        }
        response = json_response(obj)
    return response
コード例 #11
0
ファイル: views.py プロジェクト: yacine15/django-htk
def email_add(request):
    user = request.user
    add_email_form = AddEmailForm(user, request.POST)
    if add_email_form.is_valid():
        domain = request.get_host()
        user_email = add_email_form.save(domain=domain)
        response = json_response_okay()
    else:
        errors = []
        for error in add_email_form.non_field_errors():
            errors.append(error)
        obj = {
            HTK_API_JSON_KEY_STATUS: HTK_API_JSON_VALUE_ERROR,
            'errors': errors,
        }
        response = json_response(obj)
    return response
コード例 #12
0
def async_download_result(request,
                          result_id,
                          result_is_json=False,
                          content_type='text/plain',
                          filename=None):
    """View to download the result of an async task as a file

    If `result_is_json` is `True`, infer filename and content_type
    """
    from celery.result import AsyncResult
    result = AsyncResult(result_id)

    if request.GET.get('ping'):
        # only check if the file is ready
        from htk.api.utils import json_response
        response = json_response({
            'ready': result.ready(),
        })
    else:
        # attempt to download file
        if result.ready():
            from django.http import HttpResponse
            result_data = result.get()
            if result_is_json:
                from htk.apps.async_task.utils import extract_async_task_result_json_values
                content, content_type, filename = extract_async_task_result_json_values(
                    result_data)
            else:
                if filename is None:
                    from htk.apps.async_task.constants import CONTENT_TYPE_FILE_EXTENSIONS
                    file_extension = '.%s' % CONTENT_TYPE_FILE_EXTENSIONS.get(
                        content_type, 'txt')
                    filename = 'result' % file_extension
                else:
                    pass

                content = result_data

            response = HttpResponse(content, content_type=content_type)
            response[
                'Content-Disposition'] = 'attachment; filename="%s"' % filename
        else:
            from htk.utils.http.response import HttpResponseAccepted
            response = HttpResponseAccepted()
    return response
コード例 #13
0
ファイル: views.py プロジェクト: PocketGM/django-htk
def suggest(request):
    """This API endpoint supports User autocomplete
    """
    from htk.apps.accounts.formatters import DEFAULT_USER_SUGGEST_FORMATTER
    from htk.apps.accounts.search import search_by_username_name
    query = request.GET.get('q')
    if query:
        query = query.strip()
        user_results = search_by_username_name(query)
        formatted_results = [DEFAULT_USER_SUGGEST_FORMATTER(user) for user in user_results]
        obj = {
            'data' : {
                'results' : formatted_results,
            },
        }
        response = json_response(obj)
    else:
        response = json_response_error()
    return response
コード例 #14
0
ファイル: views.py プロジェクト: aweandreverence/django-htk
def alexa_skill_webhook_view(request):
    """Handles an Amazon Alexa skill webhook request

    Sample Request
    {
        "session": {
            "sessionId": "SessionId.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
            "application": {
                "applicationId": "amzn1.ask.skill.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            },
            "attributes": {},
            "user": {
                "userId": "amzn1.ask.account.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            },
            "new": true
        },
        "request": {
            "type": "IntentRequest",
            "requestId": "EdwRequestId.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
            "locale": "en-US",
            "timestamp": "2017-05-29T21:37:27Z",
            "intent": {
                "name": "ExampleIntent",
                "slots": {}
            }
        },
        "version": "1.0"
    }
    """
    request_json = json.loads(request.body)
    event = extract_post_params(request_json, ALEXA_SKILL_WEBHOOK_PARAMS)
    if is_valid_alexa_skill_webhook_event(event, request):
        from htk.lib.alexa.utils import handle_event
        payload = handle_event(event)
        if payload:
            response = json_response(payload)
        else:
            response = HttpResponse(status=200)
    else:
        raise Http404
    return response
コード例 #15
0
ファイル: views.py プロジェクト: pkkup/django-htk
def alexa_skill_webhook_view(request):
    """Handles an Amazon Alexa skill webhook request

    Sample Request
    {
        "session": {
            "sessionId": "SessionId.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
            "application": {
                "applicationId": "amzn1.ask.skill.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            },
            "attributes": {},
            "user": {
                "userId": "amzn1.ask.account.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            },
            "new": true
        },
        "request": {
            "type": "IntentRequest",
            "requestId": "EdwRequestId.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
            "locale": "en-US",
            "timestamp": "2017-05-29T21:37:27Z",
            "intent": {
                "name": "ExampleIntent",
                "slots": {}
            }
        },
        "version": "1.0"
    }
    """
    request_json = json.loads(request.body)
    event = extract_post_params(request_json, ALEXA_SKILL_WEBHOOK_PARAMS)
    if is_valid_alexa_skill_webhook_event(event, request):
        from htk.lib.alexa.utils import handle_event
        payload = handle_event(event)
        if payload:
            response = json_response(payload)
        else:
            response = HttpResponse(status=200)
    else:
        raise Http404
    return response
コード例 #16
0
ファイル: views.py プロジェクト: yacine15/django-htk
def suggest(request):
    """This API endpoint supports User autocomplete
    """
    from htk.apps.accounts.formatters import DEFAULT_USER_SUGGEST_FORMATTER
    from htk.apps.accounts.search import search_by_username_name
    query = request.GET.get('q')
    if query:
        query = query.strip()
        user_results = search_by_username_name(query)
        formatted_results = [
            DEFAULT_USER_SUGGEST_FORMATTER(user) for user in user_results
        ]
        obj = {
            'data': {
                'results': formatted_results,
            },
        }
        response = json_response(obj)
    else:
        response = json_response_error()
    return response
コード例 #17
0
ファイル: views.py プロジェクト: pkkup/django-htk
def async_download_result(request, result_id, result_is_json=False, content_type='text/plain', filename=None):
    """View to download the result of an async task as a file

    If `result_is_json` is `True`, infer filename and content_type
    """
    from celery.result import AsyncResult
    result = AsyncResult(result_id)

    if request.GET.get('ping'):
        # only check if the file is ready
        from htk.api.utils import json_response
        response = json_response({
            'ready' : result.ready(),
        })
    else:
        # attempt to download file
        if result.ready():
            from django.http import HttpResponse
            result_data = result.get()
            if result_is_json:
                from htk.apps.async_task.utils import extract_async_task_result_json_values
                content, content_type, filename = extract_async_task_result_json_values(result_data)
            else:
                if filename is None:
                    from htk.apps.async_task.constants import CONTENT_TYPE_FILE_EXTENSIONS
                    file_extension = '.%s' % CONTENT_TYPE_FILE_EXTENSIONS.get(content_type, 'txt')
                    filename = 'result' % file_extension
                else:
                    pass

                content = result_data

            response = HttpResponse(content, content_type=content_type)
            response['Content-Disposition'] = 'attachment; filename="%s"' % filename
        else:
            from htk.utils.http.response import HttpResponseAccepted
            response = HttpResponseAccepted()
    return response
コード例 #18
0
def suggest(request):
    """This API endpoint supports User autocomplete
    First retrieve from followers and following, then search all users
    """
    query = request.GET.get('q')
    if query:
        query = query.strip()
        user_results = User.objects.filter(username__istartswith=query)
        results = [
            {
                'username' : user.username,
            }
            for user in user_results
        ]
        obj = {
            'data' : {
                'results' : results,
            },
        }
        response = json_response(obj)
    else:
        response = json_response_error()
    return response
コード例 #19
0
ファイル: views.py プロジェクト: PocketGM/django-htk
def update(request):
    """Updates a User or UserProfile

    It is important to note that UserUpdateForm only updates the fields on User and UserProfile that are passed in, and does not have to update the entire object
    """
    user = request.user
    from htk.apps.accounts.forms.update import UserUpdateForm
    user_update_form = UserUpdateForm(user, request.POST)
    user_profile_update_form = user_update_form.get_profile_form()
    if user_update_form.is_valid() and user_profile_update_form.is_valid():
        updated_user = user_update_form.save()
        updated_profile = user_profile_update_form.save()
        response = json_response_okay()
    else:
        (errors, field_errors,) = get_form_errors(user_update_form)
        (profile_errors, profile_field_errors,) = get_form_errors(user_profile_update_form)
        obj = {
            HTK_API_JSON_KEY_STATUS: HTK_API_JSON_VALUE_ERROR,
            'errors' : errors + profile_errors,
            'field_errors' : field_errors + profile_field_errors,
        }
        response = json_response(obj)
    return response
コード例 #20
0
def get_user_leagues_rosters(request):
    user = request.user
    client = get_yahoo_fantasy_sports_client_for_user(user)
    rosters = client.get_user_leagues_rosters()
    response = json_response(rosters.json_data)
    return response
コード例 #21
0
def get_user(request):
    user = request.user
    client = get_yahoo_fantasy_sports_client_for_user(user)
    result = client.get_user()
    response = json_response(result.json_data)
    return response
コード例 #22
0
ファイル: views.py プロジェクト: PocketGM/django-htk
def get_user(request):
    user = request.user
    client = get_yahoo_fantasy_sports_client_for_user(user)
    result = client.get_user()
    response = json_response(result.json_data)
    return response
コード例 #23
0
ファイル: views.py プロジェクト: PocketGM/django-htk
def get_user_leagues_rosters(request):
    user = request.user
    client = get_yahoo_fantasy_sports_client_for_user(user)
    rosters = client.get_user_leagues_rosters()
    response = json_response(rosters.json_data)
    return response