Use Cornice when registering all "service" API views

pretty sure we'll get *something* for "free" if we do it their way
This commit is contained in:
Lance Edgar 2020-03-01 17:18:11 -06:00
parent c55830e533
commit 0e46b25f6e
2 changed files with 29 additions and 17 deletions

View file

@ -28,6 +28,8 @@ from __future__ import unicode_literals, absolute_import
from rattail.db.auth import authenticate_user, set_user_password, cache_permissions
from cornice import Service
from tailbone.api import APIView, api
from tailbone.db import Session
from tailbone.auth import login_user, logout_user
@ -172,28 +174,34 @@ class AuthenticationView(APIView):
def _auth_defaults(cls, config):
# session
config.add_route('api.session', '/session', request_method='GET')
config.add_view(cls, attr='check_session', route_name='api.session', renderer='json')
check_session = Service(name='check_session', path='/session')
check_session.add_view('GET', 'check_session', klass=cls)
config.add_cornice_service(check_session)
# login
config.add_route('api.login', '/login', request_method=('OPTIONS', 'POST'))
config.add_view(cls, attr='login', route_name='api.login', renderer='json')
login = Service(name='login', path='/login')
login.add_view('POST', 'login', klass=cls)
config.add_cornice_service(login)
# logout
config.add_route('api.logout', '/logout', request_method=('OPTIONS', 'POST'))
config.add_view(cls, attr='logout', route_name='api.logout', renderer='json')
logout = Service(name='logout', path='/logout')
logout.add_view('POST', 'logout', klass=cls)
config.add_cornice_service(logout)
# become root
config.add_route('api.become_root', '/become-root', request_method=('OPTIONS', 'POST'))
config.add_view(cls, attr='become_root', route_name='api.become_root', renderer='json')
become_root = Service(name='become_root', path='/become-root')
become_root.add_view('POST', 'become_root', klass=cls)
config.add_cornice_service(become_root)
# stop root
config.add_route('api.stop_root', '/stop-root', request_method=('OPTIONS', 'POST'))
config.add_view(cls, attr='stop_root', route_name='api.stop_root', renderer='json')
stop_root = Service(name='stop_root', path='/stop-root')
stop_root.add_view('POST', 'stop_root', klass=cls)
config.add_cornice_service(stop_root)
# change password
config.add_route('api.change_password', '/change-password', request_method=('OPTIONS', 'POST'))
config.add_view(cls, attr='change_password', route_name='api.change_password', renderer='json')
change_password = Service(name='change_password', path='/change-password')
change_password.add_view('POST', 'change_password', klass=cls)
config.add_cornice_service(change_password)
def includeme(config):