Skip to content

Instantly share code, notes, and snippets.

View mikeywaites's full-sized avatar

Mike Waites mikeywaites

View GitHub Profile
@mikeywaites
mikeywaites / api_middleware_post_2_4.py
Last active January 17, 2018 03:47
update api with get_client_token middleware
from arrested import ArrestedAPI
from .users import users_resource
from .characters import characters_resource
from .middleware import basic_auth, get_api_client_from_request, get_client_token
api_v1 = ArrestedAPI(
url_prefix='/v1',
before_all_hooks=[
get_api_client_from_request,
get_client_token
@mikeywaites
mikeywaites / api_middleware_post_2_3.py
Last active December 3, 2017 16:49
api middleware get_client_token
from .utils import decode_client_token, get_token_from_request
def get_client_token(endpoint):
"""Validate the request has a valid JWT token. If the provided api_key and token
a valid the JWT will be decoded and stored on g.token for use later on.
"""
token = get_token_from_request()
if not token:
payload = {'message': 'Request does not contain token'}
@mikeywaites
mikeywaites / api_middleware_post_2_2.py
Created December 3, 2017 09:22
add get_api_client_from_request middleware
from arrested import ArrestedAPI
from .users import users_resource
from .characters import characters_resource
from .middleware import basic_auth, get_api_client_from_request
api_v1 = ArrestedAPI(
url_prefix='/v1',
before_all_hooks=[
basic_auth,
get_api_client_from_request
@mikeywaites
mikeywaites / api_middleware_post_2_1.py
Last active December 3, 2017 08:07
add get client from request method
import json
from flask import current_app, request, g
from werkzeug.wrappers import Response
from werkzeug.exceptions import HTTPException
from star_wars.models import Client
from .utils import decode_client_token, get_token_from_request
from flask import g
class UserCharacterLikesIndexEndpoint(KimEndpoint, DBListMixin, DBCreateMixin):
url = '/<string:obj_id>/likes'
name = 'likes'
many = True
mapper_class = UserCharacterLikeMapper
model = UserCharacterLike
from arrested import ArrestedAPI
from .users import users_resource
from .characters import characters_resource
from .middleware import (
get_api_client_from_request,
get_client_token,
get_client_user_from_token
)
api_v1 = ArrestedAPI(
import json
from flask import current_app, request, g
from werkzeug.wrappers import Response
from werkzeug.exceptions import HTTPException
from star_wars.models import User, Client
from .utils import decode_client_token, get_token_from_request
import jwt
from datetime import datetime, timedelta
from flask import request
def decode_client_token(client, token):
"""Decode and validate a client JWT.
"""
from .user import UserMapper, UserCharacterLikeMapper
from .character import CharacterMapper
from kim import field, role
from .base import BaseMapper
from star_wars.models import User, UserCharacterLike
class UserCharacterLikeMapper(BaseMapper):
__type__ = UserCharacterLike